在 perl 中加载代码时出错
errer in code loading in perl
什么问题我不想请稍等再重复
#!/usr/bin/perl
Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(| / - \ );
my $i = 0;
my $v = "Please Wait";
print $chars[$i];
while (1) {
sleep 1;
print "$v\b", $chars[++$i % @chars];
}
什么问题我不想请稍等再重复
您将 print "Please wait"
放入 while 循环中,因此它会继续打印。在 $chars
打印之后也使用 \b
而不是在 Please wait
之后
#!/usr/bin/perl
use Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(| / - \ | / - \);
my $i = 0;
my $v = "Please Wait";
print $v;
while (1) {
sleep 1;
print $chars[++$i % @chars],"\b";
}
如果您打算使用微调器,另一种选择是您可以摆脱 sleep 1;
并将其替换为 select undef, undef, undef, miliseconds
。如果像下面这样使用,微调器会又好又快。
#!/usr/bin/perl
use Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(| / - \ | / - \);
my $i = 0;
my $v = "Please Wait ";
print $v;
while (1) {
select undef, undef, undef, 0.05;
print $chars[++$i % @chars],"\b";
}
编辑,根据您的评论请求改用点。
如果你想 运行 Please wait...
然后去掉 \b
#!/usr/bin/perl
use Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(.);
my $i = 0;
my $v = "Please Wait";
print $v;
while (1) {
sleep 1;
print $chars[++$i % @chars];
}
最后,这根本不是一个好方法,但是对于与您在评论中提到的非常相似的等待,这也可以。
use strict;
use warnings;
$|++;
my @chars = qw( . | | | . .);
print "Please Wait ";
my $i = 0;
while (1) {
select undef, undef, undef, .15;
printf $chars[++$i % @chars];
select undef, undef, undef, .15;
printf $chars[++$i % @chars];
select undef, undef, undef, .15;
printf $chars[++$i % @chars];
printf "\b\b\b";
}
尽管 运行ning 时看起来很整洁 :)
什么问题我不想请稍等再重复
#!/usr/bin/perl
Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(| / - \ );
my $i = 0;
my $v = "Please Wait";
print $chars[$i];
while (1) {
sleep 1;
print "$v\b", $chars[++$i % @chars];
}
什么问题我不想请稍等再重复
您将 print "Please wait"
放入 while 循环中,因此它会继续打印。在 $chars
打印之后也使用 \b
而不是在 Please wait
#!/usr/bin/perl
use Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(| / - \ | / - \);
my $i = 0;
my $v = "Please Wait";
print $v;
while (1) {
sleep 1;
print $chars[++$i % @chars],"\b";
}
如果您打算使用微调器,另一种选择是您可以摆脱 sleep 1;
并将其替换为 select undef, undef, undef, miliseconds
。如果像下面这样使用,微调器会又好又快。
#!/usr/bin/perl
use Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(| / - \ | / - \);
my $i = 0;
my $v = "Please Wait ";
print $v;
while (1) {
select undef, undef, undef, 0.05;
print $chars[++$i % @chars],"\b";
}
编辑,根据您的评论请求改用点。
如果你想 运行 Please wait...
然后去掉 \b
#!/usr/bin/perl
use Win32::Console;
use strict;
use warnings;
$|++; # turn off output buffering;
my @chars = qw(.);
my $i = 0;
my $v = "Please Wait";
print $v;
while (1) {
sleep 1;
print $chars[++$i % @chars];
}
最后,这根本不是一个好方法,但是对于与您在评论中提到的非常相似的等待,这也可以。
use strict;
use warnings;
$|++;
my @chars = qw( . | | | . .);
print "Please Wait ";
my $i = 0;
while (1) {
select undef, undef, undef, .15;
printf $chars[++$i % @chars];
select undef, undef, undef, .15;
printf $chars[++$i % @chars];
select undef, undef, undef, .15;
printf $chars[++$i % @chars];
printf "\b\b\b";
}
尽管 运行ning 时看起来很整洁 :)