sudo apt-get install libpng-dev
####
$ ./1.mai.pl
enable1.txt
Yay
####
#!/usr/bin/perl
use strict;
use Log::Log4perl qw(:easy);
use WWW::Mechanize::Chrome;
use Data::Dump;
use 5.016;
my $mech = WWW::Mechanize::Chrome->new();
my $url = 'https://code.google.com/archive/p/dotnetperls-controls/downloads';
$mech->get($url);
print $_->text . "\n"
for $mech->find_all_links( text_regex => qr/enable/i );
$mech->follow_link( xpath => '//a[text() = "enable1.txt"]' );
my @words;
# check the outcome
if ($mech->success) {
#print $res->decoded_content;
#@words = mech->decoded_content;
print "Yay\n";
}
else {
print "Error: " . $mech->status . "\n";
}
if (@words) {
print "@words\n";
}
sleep 1;
####
curl 'https://www.googleapis.com/storage/v1/b/google-code-archive/o/v2%2Fcode.google.com%2Fdotnetperls-controls%2Fproject.json?alt=media&stripTrailingSlashes=false' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Origin: https://code.google.com' -H 'Connection: keep-alive' -H 'Referer: https://code.google.com/archive/p/dotnetperls-controls/downloads' -H 'Cache-Control: max-age=0' -H 'TE: Trailers'
####
$ ./2.curl.pl | tail -5
zymotic
zymurgies
zymurgy
zyzzyva
zyzzyvas
$ cat 2.curl.pl
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new( 'send_te' => '0' );
my $r = HTTP::Request->new(
'GET' =>
'https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/dotnetperls-controls/enable1.txt',
[
'Connection' => 'keep-alive',
'Accept' =>
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding' => 'gzip, x-gzip, deflate, x-bzip2, bzip2',
'Accept-Language' => 'en-US,en;q=0.5',
'Host' => 'storage.googleapis.com:443',
'Referer' =>
'https://code.google.com/archive/p/dotnetperls-controls/downloads',
'User-Agent' =>
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0',
'Upgrade-Insecure-Requests' => '1',
],
);
my $res = $ua->request( $r, );
### begin Aldebaran-added source
my @words;
# check the outcome
if ($res->is_success) {
#print $res->decoded_content;
@words = $res->decoded_content;
}
else {
print "Error: " . $res->status_line . "\n";
}
if (@words) {
print "@words\n";
}
__END__
$
####
$ cat /etc/2.log.conf
###############################################################################
# Log::Log4perl Conf #
###############################################################################
log4perl.rootLogger = DEBUG, LOG1, SCREEN
log4perl.appender.SCREEN = Log::Log4perl::Appender::Screen
log4perl.appender.SCREEN.stderr = 0
log4perl.appender.SCREEN.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.SCREEN.layout.ConversionPattern = %m %n
log4perl.appender.LOG1 = Log::Log4perl::Appender::File
log4perl.appender.LOG1.filename = /home/hogan/Documents/hogan/logs/2.log4perl.txt
log4perl.appender.LOG1.mode = append
log4perl.appender.LOG1.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOG1.layout.ConversionPattern = %d %p %m %n
$
####
#!/usr/bin/perl
use Log::Log4perl;
# Initialize Logger
my $log_conf = "/etc/2.log.conf";
Log::Log4perl::init($log_conf);
my $logger = Log::Log4perl->get_logger();
$logger->info("===== before system call");
system('ls -l qwerty');
if( $? > 0 ) {
$logger->error("there was an error: $?");
}
$logger->info("===== after system call");
####
else {
print "Error: " . $mech->status . "\n";
}
####
else {
$logger->error("there was an error: $mech->status" . "\n") ;
}