1

这里有什么问题?

我正在尝试显示现有文件的内容:

perl -MFile::Slurp -e 'print File::Slurp->read_file("/tmp/001.jpg", { binmode => ":raw" } ) if -e "/tmp/001.jpg"; '

我得到了错误:

read_file 'File::Slurp' - sysopen: No such file or directory

文件存在,print只执行if -e "/tmp/001.jpg"

4

1 回答 1

8

File::Slurp::read_file通过而不是调用函数File::Slurp->read_file。在后一种情况下,Perl 的对象系统发挥作用,传递给的第一个参数将是 --read_file之前的东西,这->意味着它的第一个参数将是字符串"File::Slurp"而不是您实际想要读取的文件名。

这也是您调用new要从中创建新实例的包的原因。

于 2012-08-25T14:36:20.933 回答