gri*_*lix 2 perl glob constants
我正在解析XML文件,例如:
while (<files/*.xml>) { ... }
Run Code Online (Sandbox Code Playgroud)
我想用常量来'文件'
use constant FILES_PATH => 'files';
while (<FILES_PATH/*.xml>) { ... }
Run Code Online (Sandbox Code Playgroud)
我希望你理解这个想法,并可以帮助我:) ..
先感谢您.
嗯,这是使用Readonly而不是常量的一个原因.您可以使用常量&
的开头或()
结尾来获取Perl以实现它是子例程.让我检查一下.
不,但你可以使用创建arrayref的经典技巧来解除引用:
#!/usr/bin/perl
use strict;
use warnings;
use constant DIR => "/tmp";
print map { "$_\n" } <${[DIR]}[0]/*>;
Run Code Online (Sandbox Code Playgroud)
但既然glob "*"
是一样的<*>
,你可能会喜欢:
#!/usr/bin/perl
use strict;
use warnings;
use constant DIR => "/tmp";
print map { "$_\n" } glob DIR . "/*";
Run Code Online (Sandbox Code Playgroud)
我可能会说
#!/usr/bin/perl
use strict;
use warnings;
use Readonly;
Readonly my $DIR => "/tmp";
print map { "$_\n" } <$DIR/*>;
Run Code Online (Sandbox Code Playgroud)