使用 IO::Tee 和 END 块之间的冲突
conflict between use IO::Tee & an END block
此脚本 IOTee.pl
报告 运行 花费了 0 秒:
#!/usr/bin/perl
use IO::Tee
# create a time check:
END { print "This Perl program ran for ", time() - $^T, " seconds.\n"}
但它也报告:
Can't locate object method "END" via package "1" (perhaps you forgot to load "1"?) at IOTee.pl line 6.
BEGIN failed--compilation aborted at IOTee.pl line 6.
- 为什么?
您忘记了 "use IO::Tee" 后的分号。
因此 END { print ... }
被用作要传递给 IO::Tee::import 的导入列表。这种语法就像 print { expression-giving-a-filehandle } output-stuff
; {}
中的内容(即 1
,因为这是一个成功的打印 returns)是一个调用 END 方法的对象。
此脚本 IOTee.pl
报告 运行 花费了 0 秒:
#!/usr/bin/perl
use IO::Tee
# create a time check:
END { print "This Perl program ran for ", time() - $^T, " seconds.\n"}
但它也报告:
Can't locate object method "END" via package "1" (perhaps you forgot to load "1"?) at IOTee.pl line 6.
BEGIN failed--compilation aborted at IOTee.pl line 6.
- 为什么?
您忘记了 "use IO::Tee" 后的分号。
因此 END { print ... }
被用作要传递给 IO::Tee::import 的导入列表。这种语法就像 print { expression-giving-a-filehandle } output-stuff
; {}
中的内容(即 1
,因为这是一个成功的打印 returns)是一个调用 END 方法的对象。