파일 열기는 실제로 어떤 방식 으로든 무스와 관련이 없습니다. 그러나 파일을 처리 할 기존 인터페이스를 찾으려면 Path::Class::File을 살펴보아야합니다. 은 파일 이름을 포함하고 해당 파일을 처리하는 여러 가지 방법을 제공하는 개체입니다.
이
package MyApp::Foo;
use Moose;
has filename => (
is => 'ro', isa => 'Path::Class::File',
);
sub process_file
{
my $this = shift;
if (-e $this->filename)
{
my $fh = $this->filename->openr;
while (my $line = <$fh>)
{
# process file, line by line...
}
}
}
package main;
my $obj = MyApp::Foo->new(filename => '/home/me/foo.txt');
$obj->process_file;
이 인수로 파일에서 한 줄을 수신 코드 참조 소요 그래서 당신은 또한 process_file
방법을 수정할 수는을 처리하기 : 속성에 무스 타입의 제약 조건으로이 클래스를 사용하는 것이 매우 일반적이다 더 모듈 방식으로 내용을 파일화하십시오. 그것은 모두 당신이 당신의 프로그램이 필요로하는 것에 달려 있습니다. 당신이 MooseX::Types을 좋아하는 경우에
또는, 당신은 할 수 있습니다 :
use MooseX::Types::Path::Class qw(Dir File);
has file => (..., isa => File, coerce => 1, ...);
이것은 당신이 속성에 파일 이름을 통과하게되며, 자동으로 내부적으로 Path::Class::File
객체로 팽창 할 것이다.
@ user621092 [docs의 첫 번째 예제] (http://perldoc.perl.org/functions/open.html)에서 볼 수있는 3 개의 인수를 사용하여 Moose와 어떤 관련이 있습니까? 구문 분석 요구 사항에 대해 혼란 스럽습니다. – xenoterracide