如何使用Perl从文件中删除一行?

如何使用Perl从文件中删除一行?,第1张

概述我正在尝试从文本文件删除一行.相反,我已经删除了整个文件.有人可以指出错误吗? removeReservation("john");sub removeTime() { my $name = shift; open( FILE, "<times.txt" ); @LINES = <FILE>; close(FILE); open( FILE, ">t 我正在尝试从文本文件中删除一行.相反,我已经删除了整个文件.有人可以指出错误吗?

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从文件中删除一行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1269250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存