__END__和__DATA__



QUOTE:
原帖由 flw 于 2008-12-28 13:03 发表
一定要学会查文档。
    The two control characters ^D and ^Z, and the tokens __END__ and
    __DATA__ may be used to indicate the logical end of the script before
    the actual end of file. An ...

刚刚没看到flw和churchmice两位的回复,非常感谢



QUOTE:
原帖由 flw 于 2008-12-28 10:30 发表

我一直认为,这些细微之处,反应了一个人是否适合搞编程。

没错。编程可是细致活,尤其是你想要写好的时候。
做个实验就明白了:
#!/usr/bin/perl -w
package test;
while(<main::DATA>;){
  print;
}

__END__
test
test1
test2
test3

#正常运行


#!/usr/bin/perl -w
package test;
while(<DATA>;){
  print;
}

__END__
test
test1
test2
test3

#不能运行

#!/usr/bin/perl -w
package test;
while(<DATA>){
  print;
}

__DATA__
test
test1
test2
test3

#正常运行


#!/usr/bin/perl -w
package test;
while(<main::DATA>){
  print;
}

__DATA__
test
test1
test2
test3

#不能运行



QUOTE:
原帖由 flw 于 2008-12-28 13:03 发表
一定要学会查文档。
    The two control characters ^D and ^Z, and the tokens __END__ and
    __DATA__ may be used to indicate the logical end of the script before
    the actual end of file. An ...

你要是再说说这个在什么地方就更好了,例如 perldoc perldata 然后搜索 __DATA__ 及 __END__ 或 Special Literals
#!/usr/bin/perl -w
while(<DATA>){
  print;
}

__DATA__
test
test1
test2
test3

#正常运行


#!/usr/bin/perl -w

while(<DATA>){
  print;
}

__END__
test
test1
test2
test3

#正常运行
学习了.._END_是不是shell里延伸来的啊?我只知道_DATA_可以句柄,没用过_END_ .哈