我一直在尝试为我的服务器开发一个lyrical bot,但在我开始研究之前,我想给它一个测试,所以我用Lyrics :: Fetcher模块想出了这个脚本.
use strict;
use warnings;
use Lyrics::Fetcher;
my ($artist, $song) = ('Coldplay', 'Adventures Of A Lifetime');
my $lyrics = Lyrics::Fetcher->fetch($artist, $song, [qw(LyricWiki AstraWeb)]);
my @lines = split("\n\r", $lyrics);
foreach my $line (@lines) {
sleep(10);
print $line;
}
Run Code Online (Sandbox Code Playgroud)
这个脚本工作正常,它抓取歌词并将其打印成一个整体(这不是我正在寻找的).
我希望每隔10秒就能逐行打印歌词.请帮忙?
在PHP中你可以做到
strtotime("+1 days");
并获得第二天的机器时间.
我想和Perl一样尝试,我将做一些cron工作来执行某些方法.
我知道你可以str2time在模块http://search.cpan.org/~gaas/HTTP-Date-6.02/lib/HTTP/Date.pm中使用它我似乎无法弄明白.
我尝试了以下方法,但我不确定我是否做得对
use HTTP::Date qw(str2time);
use Time::Piece;
use Time::Seconds;
my $lol = localtime();
my $time = $lol - ONE_HOUR*($lol->hour + 24);
print "Time: " . str2time($time);
Run Code Online (Sandbox Code Playgroud) 我一直在做一个小项目,我决定尝试使用Method :: Signatures,因为我发现它更整洁.
这是没有使用Method::Signatures它工作,我能够使用包和调用方法.
sub new {
my $self = {};
bless($self);
shift;
$self->{parent} = shift;
return $self;
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个时,它不起作用:
method new($parent) {
bless {}, $self;
$self->{parent} = $parent;
return $self;
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误说:"当使用严格的引用时,不能使用字符串("PackageName")作为hashref".
我有一个子程序,用于逐行读取文件的内容.是否可以继续该过程而不是只返回一行?
sub read_lines {
my ($file) = @_;
if (open(my $fh, "<", $file)) {
while (my $data = <$fh>) {
chomp ($data);
return $data;
}
}
}
Run Code Online (Sandbox Code Playgroud)