我有一个由“:”分隔的文本文件
它有3个领域
字段1 – >文件的名称
fIEld-2 – >文件的源path
在Win32中任何易于使用的散列函数来散列ASCIIString?
使用glib的散列表的行为
/net/ipmr.c中的MFC_HASH
最快的方式来比较目录状态,或哈希为乐趣和利润
Nginx的上传模块有什么用?
字段3 – >文件的目标path
例如。
helloWorld.txt:/home/abc:/home/xyz
现在我必须从源path复制这个文件helloWorld.txt到目标path。
这需要为文本文件中的所有可用行完成。
我不知道我正在尝试的是最佳做法。 它没有工作。
有人可以告诉最好的方法来完成这个?
非常感谢
open file,$inputfile or dIE $!; while(my $file_name=<file>) { my ($tmpvar1,$tmpvar2,$tmpvar3) = split(/:/,$_); my $command = "cp ".$tmpvar2. "/". $tmpvar1 $tmpvar3; exce $command; }
通过c ++ WinAPI来计算MD5哈希值
如何将目录path转换为唯一的数字标识符(linux / C ++)?
在windows中获取C ++中唯一的硬件标识符
是否有一个原因PHP的(和Python的)哈希函数是不同的我的系统?
针对基于非SSL的签名和encryption的硬件加速
使用有意义的变量名称(不是$tempvar )。 一旦你开始使用它们( $file_name ),确保变量确实包含了它的名字提示(它不),并在任何地方使用它(即不要分割$_ )。
要复制文件,请使用file :: copy 。 它来自版本5.002的Perl。
缩进代码以提高可读性。
不要发布将语法错误发送到SO的代码。
Scalar found where operator expected at /home/choroba/1.pl line 6,near "$tmpvar1 $tmpvar3" (Missing operator before $tmpvar3?)
可能的修复:
#!/usr/bin/perl use warnings; use strict; use file::copy; open my $IN,'<',$inputfile or dIE $!; while (my $line = <$IN>) { chomp $line; my ($name,$source,$destination) = split /:/,$line; copy("$source/$name","$destination/$name") or warn "copying $name from $source to $destination Failed: $!"; }
use strict; use warnings; use file::copy; open my $file,"<",$inputfile or dIE $!; while( my $line=<$file> ) { chomp $line; my ($tmpvar1,$line); copy "$tmpvar2/$tmpvar1",$tmpvar3; } close $file;
最佳做法是使用核心模块 *** 作文件名和文件本身file :: * :
#!/usr/bin/env perl use strict; use warnings; use file::copy qw(cp); use file::Spec::Functions; while (<>) { chomp; ( my ( $name,$destination ) = split /:/ ) == 3 or dIE "broken data on line $.:$_n"; -d $destination or dIE "Destination $destination doesn't exist.n"; my $src = catfile( $source,$name ); cp( $src,$destination ) or dIE "Can't copy $src -> $destinationn"; }
总结以上是内存溢出为你收集整理的Perl – 如何从分隔的txt文件读取每一行并处理它全部内容,希望文章能够帮你解决Perl – 如何从分隔的txt文件读取每一行并处理它所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)