2011-12-15 30 views
5

İki farklı Perl betiğinde tanımlamak istediğim bir işlev var, ancak her ikisini de düzenlemekten hoşlanmam. Harici bir dosyadan include (PHP'de olduğu gibi) bir yol var mı?"include" Perl için -esk işlevi

FUNC DOSYA:

sub test { 

} 

DOSYA 1:

include func_file; 
foo(); 
bar(); 
test(); 

DOSYA 2:

include func_file; 
blah(); 
test(); 
+0

Ayrıca: http://stackoverflow.com/questions/1712016/how-do-i-include-functions-from-another-file-in-my-perl-script – Alex

+0

@Alex neden teşekkür ederim! – tekknolagi

cevap

6

Func.pm:

package Func; 

use Exporter qw(import); 
our @EXPORT = qw(test); 

sub test { 
} 

1; 

File1.pl:

use Func; 

test(); 
+0

'1;' nedir? – tekknolagi

+0

İçe aktarılan dosyalar gerçek bir değer döndürmelidir. – TLP

+0

@TLP İpucu için teşekkürler – tekknolagi

9

dar soruya cevap vermek için:

Evet, require('filename') işlevini kullanarak bir dosya içerebilir.

genellikle soruyu cevaplamak için:

Perl, paket mekanizması yoluyla işlevleri tanımlamak ve ihracat için tam bir mekanizmaya sahiptir. Bu described in perlmod. Bu mekanizmayı gerçekten kullanmalısınız, çünkü modülü bir CPAN modülüne paketleyebilir ve başkaları için kullanılabilir hale getirebilir veya diğer sistemlere kolayca yükleyebilirsiniz.

+0

Ooh, düzgün! Bir göz atacak. – tekknolagi