2017-05-30 89 views
-2

它的更多钞票在Perl输出代替打印结果Simple.csv的Perl的打印循环和更换打印结果之前

内容:

string1 
string2 
string3 

我的脚本:

#!/usr/bin/perl 
use strict; 
use warnings; 
my $file = 'simple.csv'; 
open my $info, $file or die "Could not open $file: $!"; 
while(my $line = <$info>) { 
    sleep(2); 
    print $line ; 
} 

close $info; 

输出它像:

string1 
string2 
string3 

如何更改单行输出替换string1 ..然后替换string2 ...然后替换字符串3

+1

对不起,我认为你需要澄清这个问题。你究竟想要做什么以及你已经尝试过什么? – Daz

+0

感谢您的回应,所以我想输出像替换 – bambeach

+0

输入请... ...? – ssr1012

回答

1

使用printf来控制拼版换行符。使用退格键(\b)向后移动到最后一个输出行上,或者直接发出回车符(\r)移动到行首。线路缓冲也被禁用。像这样的东西符合你的要求(据我所知):

#!/usr/bin/env perl 
use strict; 
use warnings; 
my $file = 'simple.csv'; 
open my $info, '<', $file or die "Can't open '$file': $!\n"; 
$|++; #...don't buffer output... 
while (my $line = <$info>) { 
    chomp $line; #...remove ending newline... 
    # printf "%s%s", $line, "\b" x length($line); # alternative-1 
    printf "%s\r", $line;      # alternative-2 
    sleep 2; 
} 
close $info; 
print "\n";   #...leave a clean output... 
+0

是+1谢谢你,这就是我的意思 – bambeach

+0

@bambeach如果这解决了你的问题,请将答案标记为已接受并向上投票 – JRFerguson

0

希望,打印声明本身可以做到这一点。

#!/usr/bin/perl 
use strict; 
use warnings; 
my $file = 'simple.csv'; 
open my $info, $file or die "Could not open $file: $!"; 
while(my $line = <$info>) { 
     chomp($line); 
     print "$line\r"; 
     sleep(2); 
} 

close $info; 

此回车符移动到每行打印的行首。