因为 $a 符合 perl 的变量命名规范并且不会引起歧义
2009/9/16 Michael Zeng <[email protected]>
> sorry , 现在才知道qw 不能内插, 记得以前可以的
>
> qw/ $a $b / 都是没用的, qw只接受 literal 直接量
>
> 改成print File::Spec -> catfile ( $a , "${b}_2" ) ; 就通过了,
> 为啥 $a 不用引号呢,
>
>
> 2009/9/16 cnhack TNT <[email protected]>
>
>> qw 不会做变量内插的操作的, qq 会,但是qq不会像 qw 那样按空格分隔返回包含多个元素的列表, 而请参看 perlop 中 Regexp
>> Quote-Like Operators 章节中对于 qw 的描述
>>
>> 在你这个例子里,还是用 ($a, $b, $c ...) 这种方式吧:-)
>>
>>
>> 2009/9/16 Michael Zeng <[email protected]>
>>
>>> catfile 不是接受数组元素么
>>>
>>> 按理 qw/ a b / = ( "a" , "b") 啊
>>>
>>>
>>>
>>>
>>> 2009/9/16 cnhack TNT <[email protected]>
>>>
>>> qw// 本身就没那个功能,你得用 qq//;
>>>>
>>>> 2009/9/16 Michael Zeng <[email protected]>
>>>>
>>>> 怎么感觉catfile 接受参数数别挑剔?, 下面几种 都有点问题:
>>>>>
>>>>> #!/usr/bin/perl
>>>>>
>>>>> use strict ;
>>>>> use warnings ;
>>>>>
>>>>> use File::Spec ;
>>>>>
>>>>>
>>>>> my $a = 'ccc' ;
>>>>> my $b = 'ddd' ;
>>>>> print File::Spec -> catfile ( qw/ $a $b / ) ; # 得到 $a/$b : my god
>>>>> , 为什么不变量替换呢?
>>>>>
>>>>> 编译失败:
>>>>> print File::Spec -> catfile ( $a , $b_2 ) ;
>>>>>
>>>>> 编译失败:
>>>>> print File::Spec -> catfile ( $a , ${b}_2 ) ;
>>>>>
>>>>> 只有这一种是对的:
>>>>> print File::Spec -> catfile ( $a , $b ) ; 但是没法对 $a , $b进行微操作,
>>>>>
>>>>> 感觉catfile 只支持 , 分割参数,而且不能带一些变量变化,真是太弱了吧?
>>>>>
>>>>>
>>>>> perl 5.10 和5.8 都这样,win32 或unix ,
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Yours Sincerely
>>>>> Zeng Hong
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Yours Sincerely
>>> Zeng Hong
>>>
>>>
>>>
>>
>>
>
>
> --
> Yours Sincerely
> Zeng Hong
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“PerlChina Mongers 讨论组”论坛。
要在此论坛发帖,请发电子邮件到 [email protected]
要退订此论坛,请发邮件至 [email protected]
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---