我试图使用' cat file'在我的Perl模块中,如下所示,
my $batch_dir = '/home/lsubramaniyam/xxx';
my $receive_file = $batch_dir->catfile("Recieve_file.txt");
但是,在执行脚本时,我收到错误
Can't call method "catfile" without a package or object reference
我已经包含了与文件句柄和OOPS相关的包,
use IO::All;
use IO::Socket;
use IO::Socket::SSL;
use Moo;
use MooX::HandlesVia;
use MooX::Options (
protect_argv => 0,
prefer_commandline => 1,
);
use MooX::Types::MooseLike::Base
qw(Bool Enum HashRef Int InstanceOf Maybe Str);
use File::Spec;
请帮助我继续进一步的步骤。任何帮助表示赞赏。
答案 0 :(得分:1)
您应该仔细阅读documentation。第4和第5行:
use File::Spec;
$x=File::Spec->catfile('a', 'b', 'c');
答案 1 :(得分:1)
您在此处调用catfile()
作为方法。只能在类或对象上调用方法。 $batch_dir
只是一个字符串。你不能在字符串上调用方法(这就是你的错误所说的)。
File::Spec的文档显示catfile()
被称为类方法。所以你想要这样的东西:
my $batch_dir = '/home/lsubramaniyam/xxx';
my $receive_file = File::Spec->catfile($batch_dir, 'Recieve_file.txt');