removeReservation("john");sub removeTime() { my $name = shift; open( file,"<times.txt" ); @lines = <file>; close(file); open( file,">times.txt" ); foreach $liNE (@lines) { print NEWList $liNE unless ( $liNE =~ m/$name/ ); } close(file); print("Reservation successfully removed.<br/>");}
示例times.txt文件:
04/15/2012&08:00:00&bob04/15/2012&08:00:00&john解决方法 看起来您正在打印到尚未定义的文件句柄.至少你没有在示例代码中定义它.如果启用严格和警告,您将收到以下消息:
name "main::NEWList" used only once: possible typo at remove.pl line 16.print NEWList $liNE unless ($liNE =~ m/$name/);
此代码应该适合您:
#!/usr/bin/env perl use strict; use warnings; removeTime( "john" ); sub removeTime { my $name = shift; open( file,"<times.txt" ); my @lines = <file>; close( file ); open( file,">times.txt" ); foreach my $liNE ( @lines ) { print file $liNE unless ( $liNE =~ m/$name/ ); } close( file ); print( "Reservation successfully removed.<br/>" ); }
还有几点需要注意:
1)当你的意思是removeTime()时你的示例代码调用removeReservation()
2)除非您打算使用prototypes,否则不要在子程序定义中使用圆括号.请参阅上面的示例.
总结以上是内存溢出为你收集整理的如何使用Perl从文件中删除一行?全部内容,希望文章能够帮你解决如何使用Perl从文件中删除一行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)