这里可能有什么问题?
我正在尝试显示现有文件的内容:
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"
答案 0 :(得分:8)
通过File::Slurp::read_file
而不是File::Slurp->read_file
来调用该功能。在后一种情况下,Perl的对象系统发挥作用,传递给read_file
的第一个参数将是->
之前的事物 - 意味着它的第一个参数将是字符串"File::Slurp"
而不是你真正想要阅读的文件名。
这也是您在要创建新实例的软件包上调用new
的原因。