Итак, у меня есть некоторый код, и я могу использовать его в терминале, но я не могу понять, как получить несколько файлов для Mojolicious из каталога, а не подавать их по одному. Я супер новичок в perl и мог бы использовать excel для сделайте 2000 строк и передайте их в терминал, но я бы не хотел. Любая помощь приветствуется. Вот код:
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";
}
Любая помощь приветствуется.
Ниже был комментарий о том, что использовать, и я попробовал первый метод, но все еще не совсем понимаю. Вот что я уже пробовал и ошибся:
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
илиglob
? - person Miller   schedule 21.10.2014