我想从文本文件中获取两个值
我的perl代码是
#!/usr/bin/perl
use strict;
use Fcntl qw( :flock :DEFAULT );
exit unless sysopen( PID, '1.pid', O_RDWR | O_CREAT ) && flock( PID, LOCK_EX | LOCK_NB );
print PID "$$\n";
while(-s "1.txt")
{
sleep 1;
open(F,"1.txt")||die"12";
my @arr=<F>;
close F;
exit if $#arr==-1;
my $str=shift(@arr);
open(F,">1.txt")||die"13";
print F @arr;
close F;
$str=~s/[\n\r]+//g;
my ($dx,$code)=$str=~/^(\d+):(\w+)$/;
print"($dx)($code)\n";
}
我的文字文件
00001:3wzhs7t2w5t2
00001:3wzhs7t2w5t3
00001:3wzhs7t2w5t4
我的代码输出
()()
我需要
$dx = 00001
$code = 3wzhs7t2w5t2
答案 0 :(得分:0)
这是一个逐行读取文件的小片段,每行输出两个变量中的成分。
#!/usr/bin/env perl
open my $fh, '<', 'example.txt';
while (my $line = <$fh>) {
chomp $line;
if ($line =~ m/([^:]*):([^:]*)/) {
my $dx = $1;
my $code = $2;
}
}
我希望我没有做任何人的作业;)