我看到这样的代码:
my $fh = gensym; open $fh,">$name" or die "Can't create $name: $!";
可以写成:
open my $fh,">$name" or die "Can't create $name: $!";
gensym是遗产还是在某些场合仍然有用?
解决方法
遗产.旧模块有时需要全球而不是词汇,但就是这样.
use IPC::Open3 qw( open3 ); open(local *CHILD_STDIN,'<','/dev/null') or die $!; my $pid = open3( '<&CHILD_STDIN',my $CHILD_STDOUT = gensym(),my $CHILD_STDERR = gensym(),$cmd,@args,);
第二个想法,你也可以使用它们来创建别名(虽然Data::Alias可以用词法来做).
my $foo; our $bar; local *bar = \$foo; $foo = 123; say $bar; # 123 $bar = 456; say $foo; # 456
原文地址:https://www.jb51.cc/Perl/171351.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。