변경 :사용하여 내() 나는이 펄 스크립트를 실행하면 XML :: 베어 행동이 크게
#!/bin/perl
use XML::Bare;
$ob = new XML::Bare(text=>'<xml><name>Bob</name></xml>');
for $i (keys %{$ob->{xml}}) {print "KEY: $i\n";}
을 내가 더 출력을 얻을 수 없습니다. 그러나, 나는이 my()
내부 $ob
을 넣어 :
#!/bin/perl
use XML::Bare;
my($ob) = new XML::Bare(text=>'<xml><name>Bob</name></xml>');
for $i (keys %{$ob->{xml}}) {print "KEY: $i\n";}
내가이 출력을 얻을 :
KEY: _z
KEY: _i
KEY: xml
KEY: _pos
왜 특히 내가 최고 수준의 경우에있어 주어 큰폭으로이 동작 my()
변화를 않습니다 my()
은 전혀 효과가 없어야합니까? 모든
감사! 이전에 parse()를 사용 했었지만 my()가 자동 구문 분석을 수행하는 것처럼 보였을 때 놀랐습니다. 나는 "my $ foo"가 "my ($ foo)"와 같다고 잘못 생각하고있다. – barrycarter
'my ($ foo)'는'(my $ foo)'와 같고'(...) ='는 Perl에게 스칼라 지정 연산자 대신 목록 할당 연산자를 사용하도록 지시합니다. [미니 튜토리얼 : 스칼라 대리스트 할당 연산자] (http://www.perlmonks.org/?node_id=790129)를 참조하십시오. – ikegami