특수 파일 핸들 <STDIN>
에서 읽는 Perl 모듈을 원하고 이것을 서브 루틴으로 전달합니다. 내 코드를 볼 때 내 뜻을 이해하게 될 것입니다.Perl 서브 루틴으로 파일 핸들을 전달하고 읽는 방법?
#!/usr/bin/perl
use strict; use warnings;
use lib '/usr/local/custom_pm'
package Read_FH
sub read_file {
my ($filein) = @_;
open FILEIN, $filein or die "could not open $filein for read\n";
# reads each line of the file text one by one
while(<FILEIN>){
# do something
}
close FILEIN;
오른쪽 이제 서브 루틴이 하나 파일 하나의 각 라인을 인수로 ($filein
에 저장) 파일 이름을 사용하여 파일 핸들을 사용하여 파일을 열고, 읽고 : 여기 전에 그것이 얼마나입니다 미세 핸들 사용.
대신 파일 이름을 <STDIN>
에서 가져 와서 변수에 저장 한 다음이 변수를 인수로 서브 루틴에 전달하고 싶습니다. 메인 프로그램에서 :
$file = <STDIN>;
$variable = read_file($file);
모듈의 서브 루틴은 다음과 같습니다 :
는#!/usr/bin/perl
use strict; use warnings;
use lib '/usr/local/custom_pm'
package Read_FH
# subroutine that parses the file
sub read_file {
my ($file)= @_;
# !!! Should I open $file here with a file handle? !!!!
# read each line of the file
while($file){
# do something
}
는 아무도 내가이 작업을 수행 할 수있는 방법을 알고 있나요? 나는 어떤 제안을 주셔서 감사합니다.
을 그냥 그래서 당신이에 대한 CPAN 모듈을 원하는 수행을 제대로 이해하거나를 얻을 수 있도록 모듈을 변경하는 데 도움 싶어 filename from ''? –
simbabque
파일 이름이 ''이되도록 내 모듈을 변경하는 데 도움이 필요합니다. –
cooldood3490
두 줄의 코드를 모듈에 넣으려고 했습니까? – simbabque