文档和 test 文件你应该多看几遍。

File::System 里的文档里提到了

my $root = File::System->new("Real", root => '/var/chroot/foo');

我的理解是你可以把 Real 替换为 'Object',来调用 File::System::Object,这
里调用的是 File::System::Real.  File::System 的工作就是一个主的
Factory,通过它可以调用其他分工厂。所以上面的例子就是调用 Real 分厂里的
new 方法,并把其他变量(root => ...)传递过去。

看这个模块很久没有更新,2005 3月 出来一直更新到 12 月不知道是否靠谱。

Perl 本身就自带很多操作系统的函数和一些模块,建议还是使用这些成熟的。而
且一般的骆驼书里都会对这些作些介绍。

Qiang

On 08/03/2011 01:43 PM, Phillip Huang wrote:
>  >my $obj = 'File::System::Object'; 这行不应该加单引号吧。这样声明的话你 
> 的obj是个字符串吧,并不是个对象
> 我真是不知道怎样去new一个File::System::Object。
> 
> 不过我模仿了.cpan/build/File-System-1.16-FnCixg/t/02_glob.t的写法:
> #!/usr/bin/perl
> 
> use strict;
> use warnings;
> 
> use base qw( File::System::Object );
> 
> my $obj = 'File::System::Object';
> 
> my @files = qw/
> a ab abc abcd
> b bc bcd
> c cd
> d
> .a .ab .abc .abcd
> .b .bc .bcd
> .c .cd
> .d
> /;
> 
> my @match_path = $obj->match_glob('a', @files);
> 
> print $_ foreach @match_path;
> 
> 
> phillip@athens:/tmp$ perl 1.pl <http://1.pl>
> a
> 
> 从上面看,是调用了File::System::Object的match_glob方法。
> 
> 
> 
> 2011/8/3 金玉玮 <[email protected] <mailto:[email protected]>>
> 
>     my $obj = 'File::System::Object'; 这行不应该加单引号吧。这样声明的话
>     你的obj是个字符串吧,并不是个对象
> 
>     在 2011年8月3日 下午1:07,Phillip Huang <[email protected]
>     <mailto:[email protected]>>写道:
> 
>         我参考.cpan/build/File-System-1.16-FnCixg/t/02_glob.t的写法。
> 
> 
> 
>         2011/8/3 Robin Lee <[email protected]
>         <mailto:[email protected]>>
> 
>             对象好像都没创建
> 
>             2011/8/3 Phillip Huang <[email protected]
>             <mailto:[email protected]>>:
>              > Hi 各位,
>              > 本人最近在尝试用Perl写一个文件管理脚本,想使用
>             File::System模块。可是按照CPAN的文档(和File::System::Object
>             的),我始终无法执行以下操作,如:
>              > #!/usr/bin/perl use strict; use warnings; use
>             File::System::Object; my $obj
>              > = 'File::System::Object'; my $file = $obj->root;
>             root@athens:/tmp# perl 1.pl <http://1.pl>
>              > Can't locate object method "root" via package
>             "File::System::Object" at 1.pl <http://1.pl>
>              > line 10.
>              > 我查看了object.pm <http://object.pm>,
>              > 并没有找到root这个方法。请各位高手帮我看看,或者举个例解
>             释一些File::System和File::System::Object的简单用法。
>              > 先谢谢。
>              > Phillip
>              >
>              > --
>              > 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina
>             Mongers 讨论组”论坛。
>              > 要向此网上论坛发帖,请发送电子邮件至
>             [email protected] <mailto:[email protected]>。
>              > 要取消订阅此网上论坛,请发送电子邮件至
>             [email protected]
>             <mailto:perlchina%[email protected]>。
>              > 若有更多问题,请通过
>             http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上
>             论坛。
>              >
> 
>             --
>             您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina
>             Mongers 讨论组”论坛。
>             要向此网上论坛发帖,请发送电子邮件至
>             [email protected] <mailto:[email protected]>。
>             要取消订阅此网上论坛,请发送电子邮件至
>             [email protected]
>             <mailto:perlchina%[email protected]>。
>             若有更多问题,请通过
>             http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上
>             论坛。
> 
> 
>         -- 
>         您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers
>         讨论组”论坛。
>         要向此网上论坛发帖,请发送电子邮件至 [email protected]
>         <mailto:[email protected]>。
>         要取消订阅此网上论坛,请发送电子邮件至
>         [email protected]
>         <mailto:perlchina%[email protected]>。
>         若有更多问题,请通过
>         http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
> 
> 
>     -- 
>     您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论
>     组”论坛。
>     要向此网上论坛发帖,请发送电子邮件至 [email protected]
>     <mailto:[email protected]>。
>     要取消订阅此网上论坛,请发送电子邮件至
>     [email protected]
>     <mailto:perlchina%[email protected]>。
>     若有更多问题,请通过
>     http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
> 
> 
> -- 
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 [email protected]。
> 要取消订阅此网上论坛,请发送电子邮件至 
> [email protected]。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 
> 访问此网上论坛。

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

回复