Итак, у меня есть код, и я могу использовать его в терминале отлично, но я не могу понять, как получить несколько файлов для Mojolicious из каталога, а не кормить их 1 на 1. Я супер новичок в perl и могу использовать excel, чтобы сделать 2000 строк и передать их в терминал, но я бы предпочел не делать этого. Любая помощь очень ценится. Вот код:Как получить файлы для Mojolicious из каталога
use lib '/Users/lialin/perl5/lib/perl5';
use strict;
use warnings;
use feature 'say';
use File::Slurp 'slurp'; # makes it easy to read files.
use Mojo;
use Mojo::UserAgent;
use URI;
#my $html_file = "Ask/Agilent_Technologies_ask.html"; # take file from directory
my $html_file = shift @ARGV; # take file from command lin
my $dom = Mojo::DOM->new(scalar slurp $html_file);
print $html_file ;
#for my $csshref ($dom->find('a[href]')->attr('href')->each) {
#for my $link ($dom->find('a[href]')->attr('href')->each) {
# print $1;
#say $1 #if $link->attr('href') =~ m{^https?://(.+?)/index\.php}s;
for my $csshref ($dom->find('a[href]')->attr('href')->each) {
my $cssurl = URI->new($csshref)->abs($html_file);
print "$cssurl\n";
}
Любая помощь очень ценится.
Приведенный ниже комментарий о том, что использовать, и я пробовал первый метод, но до сих пор не получил glob. Вот то, что я уже пробовал и ошибочный на:
use lib '/Users/lialin/perl5/lib/perl5';
use strict;
use warnings;
use feature 'say';
use File::Slurp 'slurp'; # makes it easy to read files.
use Mojo;
use Mojo::UserAgent;
use URI;
#my $html_file = "Ask/Agilent_Technologies_ask.html"; # take file from directory
#my $html_file = shift @ARGV; # take file from command lin
my $calls_dir = "Ask/";
opendir(my $search_dir, $calls_dir) or die "$!\n";
my @html_files = grep /\.html$/i, readdir $search_dir;
closedir $search_dir;
#print "Got ", scalar @files, " files\n";
#my %seen =();
foreach my $html_files (@html_files) {
my %seen =();
my $current_file = $calls_dir . $html_files;
open my $FILE, '<', $current_file or die "$html_files: $!\n";
my $dom = Mojo::DOM->new(scalar slurp $html_files);
print $html_files ;
#for my $csshref ($dom->find('a[href]')->attr('href')->each) {
#for my $link ($dom->find('a[href]')->attr('href')->each) {
# print $1;
#say $1 #if $link->attr('href') =~ m{^https?://(.+?)/index\.php}s;
for my $csshref ($dom->find('a[href]')->attr('href')->each) {
my $cssurl = URI->new($csshref)->abs($html_files);
open my $fh, '>', "${html_files}result.txt" or die $!;
$fh->print("$html_files\t$_\n");
#print "$cssurl\n";
}
}
Я думаю, что нужно натянуть, но использовать тот же один и беспорядок-то вверх. Еще раз спасибо за помощь новичкам.
Это звучит почти как вы просто спрашиваете, как прочитать каталог? Вы не видели ['readdir'] (http://perldoc.perl.org/functions/readdir.html) или [' glob'] (http://perldoc.perl.org/functions/glob.html)? – Miller
Да, я пробовал что-то подобное, но он был полон ошибок. Я отправлю то, что я пробовал. – tlialin