For Corion: LATEST WITH FORCE TO 0.61 Microsoft Windows [Version 10.0.19041.630] (c) 2020 Microsoft Corporation. All rights reserved. C:\Users\mmtho\Documents\PerlProjects>cpan CORION/WWW-Mechanize-Chrome +-0.61.tar.gz CPAN: Term::ANSIColor loaded ok (v4.06) Reading 'C:\Perl64\cpan\Metadata' Database was generated on Mon, 28 Sep 2020 05:55:34 GMT CPAN: LWP::UserAgent loaded ok (v6.29) Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/C/CO/CORION/WWW-Mechanize-C +hrome-0.61.tar.gz LWP failed with code[404] message[Not Found] Warning: no success downloading 'C:\Perl64\cpan\sources\authors\id\C\C +O\CORION\WWW-Mechanize-Chrome-0.61.tar.gz.tmp12372'. Giving up on it. Fetching with LWP: http://cpan.perl.org/authors/id/C/CO/CORION/WWW-Mechanize-Chrome-0.61. +tar.gz CPAN: YAML::XS loaded ok (v0.66) CPAN: Digest::SHA loaded ok (v5.98) Fetching with LWP: http://cpan.perl.org/authors/id/C/CO/CORION/CHECKSUMS CPAN: Compress::Zlib loaded ok (v2.074) Checksum for C:\Perl64\cpan\sources\authors\id\C\CO\CORION\WWW-Mechani +ze-Chrome-0.61.tar.gz ok CPAN: Archive::Tar loaded ok (v2.26) WWW-Mechanize-Chrome-0.61/ WWW-Mechanize-Chrome-0.61/INSTALL WWW-Mechanize-Chrome-0.61/MANIFEST.SKIP WWW-Mechanize-Chrome-0.61/Makefile.PL WWW-Mechanize-Chrome-0.61/t/ WWW-Mechanize-Chrome-0.61/t/65-is_visible_reload.html WWW-Mechanize-Chrome-0.61/t/49-mech-get-file.t WWW-Mechanize-Chrome-0.61/t/50-mech-autoclose.t WWW-Mechanize-Chrome-0.61/t/50-mech-new.t WWW-Mechanize-Chrome-0.61/t/test-input-with-class.html WWW-Mechanize-Chrome-0.61/t/51-mech-links.t WWW-Mechanize-Chrome-0.61/t/78-memleak.t WWW-Mechanize-Chrome-0.61/t/60-mech-cookies.t WWW-Mechanize-Chrome-0.61/t/53-mech-capture-js-error.t WWW-Mechanize-Chrome-0.61/t/50-mech-start-url.t WWW-Mechanize-Chrome-0.61/t/49-mech-get-file-lc-ct.html WWW-Mechanize-Chrome-0.61/t/00-load.t WWW-Mechanize-Chrome-0.61/t/50-mech-new-dsl.t WWW-Mechanize-Chrome-0.61/t/50-mech-get-nonexistent.t WWW-Mechanize-Chrome-0.61/t/61-mech-download.t WWW-Mechanize-Chrome-0.61/t/50-mech-get.t WWW-Mechanize-Chrome-0.61/t/select.t WWW-Mechanize-Chrome-0.61/t/50-follow-link.t WWW-Mechanize-Chrome-0.61/t/75-classnames.t WWW-Mechanize-Chrome-0.61/t/51-mech-submit.html WWW-Mechanize-Chrome-0.61/t/rt127588.t WWW-Mechanize-Chrome-0.61/t/52-iframeset.html WWW-Mechanize-Chrome-0.61/t/61-screencast.t WWW-Mechanize-Chrome-0.61/t/50-form-with-fields.t WWW-Mechanize-Chrome-0.61/t/50-click.html WWW-Mechanize-Chrome-0.61/t/58-alert.html WWW-Mechanize-Chrome-0.61/t/50-form3.html WWW-Mechanize-Chrome-0.61/t/65-is_visible_class.html WWW-Mechanize-Chrome-0.61/t/52-frameset.html WWW-Mechanize-Chrome-0.61/t/77-reload-fragment.t WWW-Mechanize-Chrome-0.61/t/01-chrome-devtools-protocol.t WWW-Mechanize-Chrome-0.61/t/65-is_visible_hidden.html WWW-Mechanize-Chrome-0.61/t/52-subframe2.html WWW-Mechanize-Chrome-0.61/t/62-networkstatus.t WWW-Mechanize-Chrome-0.61/t/53-mech-capture-js-noerror.html WWW-Mechanize-Chrome-0.61/t/62-viewport-size.t WWW-Mechanize-Chrome-0.61/t/50-mech-eval.t WWW-Mechanize-Chrome-0.61/t/52-secondary-subframe.html WWW-Mechanize-Chrome-0.61/t/02-chrome-devtools-tab.t WWW-Mechanize-Chrome-0.61/t/49-launch.t WWW-Mechanize-Chrome-0.61/t/50-mech-redirect.t WWW-Mechanize-Chrome-0.61/t/50-mech-text.t WWW-Mechanize-Chrome-0.61/t/56-render-content.t WWW-Mechanize-Chrome-0.61/t/47-mech-simplest.t WWW-Mechanize-Chrome-0.61/t/01-chrome-devtools-protocol-target-cycle.t WWW-Mechanize-Chrome-0.61/t/scripttag.html WWW-Mechanize-Chrome-0.61/t/CookiesOld WWW-Mechanize-Chrome-0.61/t/51-mech-links-nobase.html WWW-Mechanize-Chrome-0.61/t/50-mech-status.t WWW-Mechanize-Chrome-0.61/t/helper.pm WWW-Mechanize-Chrome-0.61/t/49-mech-nav.t WWW-Mechanize-Chrome-0.61/t/51-mech-links-base.html WWW-Mechanize-Chrome-0.61/t/52-subframe.html WWW-Mechanize-Chrome-0.61/t/99-interactive-single-window.t WWW-Mechanize-Chrome-0.61/t/78-two-instances.t WWW-Mechanize-Chrome-0.61/t/01-select-backend-implementation.t WWW-Mechanize-Chrome-0.61/t/65-is_visible_none.html WWW-Mechanize-Chrome-0.61/t/53-mech-capture-js-error.html WWW-Mechanize-Chrome-0.61/t/50-tick.html WWW-Mechanize-Chrome-0.61/t/49-port.t WWW-Mechanize-Chrome-0.61/t/01-chrome-devtools-protocol-target.t WWW-Mechanize-Chrome-0.61/t/51-click-intrapage.t WWW-Mechanize-Chrome-0.61/t/49-mech-get-file.html WWW-Mechanize-Chrome-0.61/t/51-mech-submit.t WWW-Mechanize-Chrome-0.61/t/76-scroll.t WWW-Mechanize-Chrome-0.61/t/select.html WWW-Mechanize-Chrome-0.61/t/70-mech-png.t WWW-Mechanize-Chrome-0.61/t/65-is_visible_remove.html WWW-Mechanize-Chrome-0.61/t/65-is_visible_text.html WWW-Mechanize-Chrome-0.61/t/mixi_jp_index.html WWW-Mechanize-Chrome-0.61/t/65-is_visible_none_to_visible.html WWW-Mechanize-Chrome-0.61/t/50-form-with-fields-gh48.html WWW-Mechanize-Chrome-0.61/t/50-mech-forms.t WWW-Mechanize-Chrome-0.61/t/50-tick.t WWW-Mechanize-Chrome-0.61/t/60-mech-custom-headers.t WWW-Mechanize-Chrome-0.61/t/50-mech-encoding.t WWW-Mechanize-Chrome-0.61/t/50-form2.t WWW-Mechanize-Chrome-0.61/t/65-is_visible-2.t WWW-Mechanize-Chrome-0.61/t/50-popup.t WWW-Mechanize-Chrome-0.61/t/51-mech-set-content.t WWW-Mechanize-Chrome-0.61/t/58-alert.t WWW-Mechanize-Chrome-0.61/t/52-nested-frameset.html WWW-Mechanize-Chrome-0.61/t/50-form2.html WWW-Mechanize-Chrome-0.61/t/50-mech-content.t WWW-Mechanize-Chrome-0.61/t/51-mech-form-with-fields.t WWW-Mechanize-Chrome-0.61/t/rt130999.t WWW-Mechanize-Chrome-0.61/t/65-wait_until_visible.t WWW-Mechanize-Chrome-0.61/t/xhtml.xhtml WWW-Mechanize-Chrome-0.61/t/76-infinite-scroll.html WWW-Mechanize-Chrome-0.61/t/50-form-with-fields-gh48.t WWW-Mechanize-Chrome-0.61/t/03-listener-leak-test.t WWW-Mechanize-Chrome-0.61/t/65-save-content.t WWW-Mechanize-Chrome-0.61/t/50-mech-ct.t WWW-Mechanize-Chrome-0.61/t/html5.html WWW-Mechanize-Chrome-0.61/t/65-is_visible.t WWW-Mechanize-Chrome-0.61/t/49-pipe.t WWW-Mechanize-Chrome-0.61/t/sophos_co_jp_index.html WWW-Mechanize-Chrome-0.61/README.mkdn WWW-Mechanize-Chrome-0.61/.gitignore WWW-Mechanize-Chrome-0.61/META.yml WWW-Mechanize-Chrome-0.61/lib/ WWW-Mechanize-Chrome-0.61/lib/Chrome/ WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/ WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Target.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/ WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/Mojo.p +m WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/Pipe.p +m WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/NetAsy +nc.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/Pipe/ WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/Pipe/M +ojo.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/Pipe/N +etAsync.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/Pipe/A +nyEvent.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/AnyEve +nt.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport/Win32P +ipeOpener.pm WWW-Mechanize-Chrome-0.61/lib/Chrome/DevToolsProtocol/Transport.pm WWW-Mechanize-Chrome-0.61/lib/WWW/ WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/ WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome.pm WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/ WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/Node.pm WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/Cookbook.pm WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/URLBlacklist.pm WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/Internals.pod WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/DSL.pm WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/Install.pod WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/Contributing.pod WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/Troubleshooting.pm WWW-Mechanize-Chrome-0.61/lib/WWW/Mechanize/Chrome/Examples.pm WWW-Mechanize-Chrome-0.61/lib/HTTP/ WWW-Mechanize-Chrome-0.61/lib/HTTP/Cookies/ WWW-Mechanize-Chrome-0.61/lib/HTTP/Cookies/ChromeDevTools.pm WWW-Mechanize-Chrome-0.61/META.json WWW-Mechanize-Chrome-0.61/xt/ WWW-Mechanize-Chrome-0.61/xt/99-todo.t WWW-Mechanize-Chrome-0.61/xt/99-changes.t WWW-Mechanize-Chrome-0.61/xt/99-manifest.t WWW-Mechanize-Chrome-0.61/xt/99-unix-text.t WWW-Mechanize-Chrome-0.61/xt/99-test-prerequisites.t WWW-Mechanize-Chrome-0.61/xt/99-pod.t WWW-Mechanize-Chrome-0.61/xt/copyright.t WWW-Mechanize-Chrome-0.61/xt/99-compile.t WWW-Mechanize-Chrome-0.61/xt/99-synopsis.t WWW-Mechanize-Chrome-0.61/xt/99-versions.t WWW-Mechanize-Chrome-0.61/xt/meta-lint.t WWW-Mechanize-Chrome-0.61/Changes WWW-Mechanize-Chrome-0.61/README WWW-Mechanize-Chrome-0.61/MANIFEST WWW-Mechanize-Chrome-0.61/examples/ WWW-Mechanize-Chrome-0.61/examples/links.html WWW-Mechanize-Chrome-0.61/examples/javascript.pl WWW-Mechanize-Chrome-0.61/examples/dump-links.pl WWW-Mechanize-Chrome-0.61/examples/sendkeys.pl WWW-Mechanize-Chrome-0.61/examples/resource-timing.pl WWW-Mechanize-Chrome-0.61/examples/README WWW-Mechanize-Chrome-0.61/examples/gen_examples_pod.pl WWW-Mechanize-Chrome-0.61/examples/html-to-pdf.pl WWW-Mechanize-Chrome-0.61/examples/url-to-image.pl WWW-Mechanize-Chrome-0.61/LICENSE WWW-Mechanize-Chrome-0.61/testrules.yml CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v1.4422) CPAN: CPAN::Meta loaded ok (v2.150010) CPAN: Module::CoreList loaded ok (v5.20171120) Configuring C/CO/CORION/WWW-Mechanize-Chrome-0.61.tar.gz with Makefile +.PL (Re)Creating lib/WWW/Mechanize/Chrome/Examples.pm Checking if your kit is complete... Looks good Warning: prerequisite Imager::File::PNG 0 not found. Generating a dmake-style Makefile Writing Makefile for WWW::Mechanize::Chrome Writing MYMETA.yml and MYMETA.json CORION/WWW-Mechanize-Chrome-0.61.tar.gz C:\Perl64\bin\perl.exe Makefile.PL INSTALLDIRS=site -- OK Running make for C/CO/CORION/WWW-Mechanize-Chrome-0.61.tar.gz ---- Unsatisfied dependencies detected during ---- ---- CORION/WWW-Mechanize-Chrome-0.61.tar.gz ---- Imager::File::PNG [requires] Running install for module 'Imager::File::PNG' Checksum for C:\Perl64\cpan\sources\authors\id\T\TO\TONYC\Imager-File- +PNG-0.95.tar.gz ok Imager-File-PNG-0.95/ Imager-File-PNG-0.95/META.yml Imager-File-PNG-0.95/README Imager-File-PNG-0.95/impng.h Imager-File-PNG-0.95/MANIFEST Imager-File-PNG-0.95/impng.c Imager-File-PNG-0.95/PNG.xs Imager-File-PNG-0.95/t/ Imager-File-PNG-0.95/t/00load.t Imager-File-PNG-0.95/t/10png.t Imager-File-PNG-0.95/Changes Imager-File-PNG-0.95/Makefile.PL Imager-File-PNG-0.95/MANIFEST.SKIP Imager-File-PNG-0.95/PNG.pm Imager-File-PNG-0.95/testimg/ Imager-File-PNG-0.95/testimg/cover.png Imager-File-PNG-0.95/testimg/rgb16.png Imager-File-PNG-0.95/testimg/cover16.png Imager-File-PNG-0.95/testimg/bipalette.png Imager-File-PNG-0.95/testimg/coveri.png Imager-File-PNG-0.95/testimg/coverpal.png Imager-File-PNG-0.95/testimg/coverpali.png Imager-File-PNG-0.95/testimg/bilevel.png Imager-File-PNG-0.95/testimg/gray.png Imager-File-PNG-0.95/testimg/graya.png Imager-File-PNG-0.95/testimg/paltrans.png Imager-File-PNG-0.95/testimg/cover16i.png Imager-File-PNG-0.95/testimg/palette.png Imager-File-PNG-0.95/testimg/comment.png Imager-File-PNG-0.95/testimg/rgb8.png Imager-File-PNG-0.95/testimg/pal.png Imager-File-PNG-0.95/testimg/rgb8i.png Imager-File-PNG-0.95/testimg/palette_out.png Imager-File-PNG-0.95/testimg/badcrc.png Imager-File-PNG-0.95/META.json Imager-File-PNG-0.95/inc/ Imager-File-PNG-0.95/inc/Devel/ Imager-File-PNG-0.95/inc/Devel/CheckLib.pm Configuring T/TO/TONYC/Imager-File-PNG-0.95.tar.gz with Makefile.PL PNG: building independently PNG: Generic: includes not found - libraries not found PNG: v1.6: includes not found - libraries not found PNG: v1.5: includes not found - libraries not found PNG: v1.4: includes not found - libraries not found PNG: v1.2: includes not found - libraries not found PNG: v1.0: includes not found - libraries not found PNG: base (+libz): includes not found - libraries not found PNG: v1.6 (+libz): includes not found - libraries not found PNG: v1.5 (+libz): includes not found - libraries not found PNG: v1.4 (+libz): includes not found - libraries not found PNG: v1.2 (+libz): includes not found - libraries not found PNG: v1.0 (+libz): includes not found - libraries not found PNG: Checking if the compiler can find them on its own Warning (mostly harmless): No library found for -lpng Warning (mostly harmless): No library found for -lmoldname Warning (mostly harmless): No library found for -lkernel32 Warning (mostly harmless): No library found for -luser32 Warning (mostly harmless): No library found for -lgdi32 Warning (mostly harmless): No library found for -lwinspool Warning (mostly harmless): No library found for -lcomdlg32 Warning (mostly harmless): No library found for -ladvapi32 Warning (mostly harmless): No library found for -lshell32 Warning (mostly harmless): No library found for -lole32 Warning (mostly harmless): No library found for -loleaut32 Warning (mostly harmless): No library found for -lnetapi32 Warning (mostly harmless): No library found for -luuid Warning (mostly harmless): No library found for -lws2_32 Warning (mostly harmless): No library found for -lmpr Warning (mostly harmless): No library found for -lwinmm Warning (mostly harmless): No library found for -lversion Warning (mostly harmless): No library found for -lodbc32 Warning (mostly harmless): No library found for -lodbccp32 Warning (mostly harmless): No library found for -lcomctl32 PNG: Test code failed: Can't link/include 'png.h', 'stdio.h', 'png' OS unsupported: PNG libraries or headers not found Warning: No success on command[C:\Perl64\bin\perl.exe Makefile.PL INST +ALLDIRS=site] TONYC/Imager-File-PNG-0.95.tar.gz C:\Perl64\bin\perl.exe Makefile.PL INSTALLDIRS=site -- NOT OK CORION/WWW-Mechanize-Chrome-0.61.tar.gz Has already been unwrapped into directory C:\Perl64\cpan\build\WWW-M +echanize-Chrome-0.61-0 CORION/WWW-Mechanize-Chrome-0.61.tar.gz Has already been prepared Running make for C/CO/CORION/WWW-Mechanize-Chrome-0.61.tar.gz Warning: Prerequisite 'Imager::File::PNG => 0' for 'CORION/WWW-Mechani +ze-Chrome-0.61.tar.gz' failed when processing 'TONYC/Imager-File-PNG- +0.95.tar.gz' with 'writemakefile => NO 'C:\Perl64\bin\perl.exe Makefi +le.PL INSTALLDIRS=site' returned status 512'. Continuing, but chances + to succeed are limited. cp lib/Chrome/DevToolsProtocol/Transport/NetAsync.pm blib\lib\Chrome\D +evToolsProtocol\Transport\NetAsync.pm cp lib/Chrome/DevToolsProtocol.pm blib\lib\Chrome\DevToolsProtocol.pm cp lib/Chrome/DevToolsProtocol/Transport.pm blib\lib\Chrome\DevToolsPr +otocol\Transport.pm cp lib/Chrome/DevToolsProtocol/Transport/Pipe.pm blib\lib\Chrome\DevTo +olsProtocol\Transport\Pipe.pm cp lib/Chrome/DevToolsProtocol/Transport/Pipe/AnyEvent.pm blib\lib\Chr +ome\DevToolsProtocol\Transport\Pipe\AnyEvent.pm cp lib/Chrome/DevToolsProtocol/Transport/Pipe/NetAsync.pm blib\lib\Chr +ome\DevToolsProtocol\Transport\Pipe\NetAsync.pm cp lib/Chrome/DevToolsProtocol/Transport/Pipe/Mojo.pm blib\lib\Chrome\ +DevToolsProtocol\Transport\Pipe\Mojo.pm cp lib/WWW/Mechanize/Chrome.pm blib\lib\WWW\Mechanize\Chrome.pm cp lib/Chrome/DevToolsProtocol/Transport/Mojo.pm blib\lib\Chrome\DevTo +olsProtocol\Transport\Mojo.pm cp lib/HTTP/Cookies/ChromeDevTools.pm blib\lib\HTTP\Cookies\ChromeDevT +ools.pm cp lib/Chrome/DevToolsProtocol/Target.pm blib\lib\Chrome\DevToolsProto +col\Target.pm cp lib/Chrome/DevToolsProtocol/Transport/AnyEvent.pm blib\lib\Chrome\D +evToolsProtocol\Transport\AnyEvent.pm cp lib/Chrome/DevToolsProtocol/Transport/Win32PipeOpener.pm blib\lib\C +hrome\DevToolsProtocol\Transport\Win32PipeOpener.pm cp lib/WWW/Mechanize/Chrome/Install.pod blib\lib\WWW\Mechanize\Chrome\ +Install.pod cp lib/WWW/Mechanize/Chrome/URLBlacklist.pm blib\lib\WWW\Mechanize\Chr +ome\URLBlacklist.pm cp lib/WWW/Mechanize/Chrome/Troubleshooting.pm blib\lib\WWW\Mechanize\ +Chrome\Troubleshooting.pm cp lib/WWW/Mechanize/Chrome/Examples.pm blib\lib\WWW\Mechanize\Chrome\ +Examples.pm cp lib/WWW/Mechanize/Chrome/Internals.pod blib\lib\WWW\Mechanize\Chrom +e\Internals.pod cp lib/WWW/Mechanize/Chrome/Node.pm blib\lib\WWW\Mechanize\Chrome\Node +.pm cp lib/WWW/Mechanize/Chrome/Contributing.pod blib\lib\WWW\Mechanize\Ch +rome\Contributing.pod cp lib/WWW/Mechanize/Chrome/Cookbook.pm blib\lib\WWW\Mechanize\Chrome\ +Cookbook.pm cp lib/WWW/Mechanize/Chrome/DSL.pm blib\lib\WWW\Mechanize\Chrome\DSL.p +m CORION/WWW-Mechanize-Chrome-0.61.tar.gz C:\Perl64\site\bin\dmake.exe -- OK CPAN: CPAN::DistnameInfo loaded ok (v0.12) Running make test for CORION/WWW-Mechanize-Chrome-0.61.tar.gz "C:\Perl64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" " +-e" "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'bli +b\arch')" t/00-load.t t/01-chrome-devtools-protocol-target-cycle.t t/ +01-chrome-devtools-protocol-target.t t/01-chrome-devtools-protocol.t +t/01-select-backend-implementation.t t/02-chrome-devtools-tab.t t/03- +listener-leak-test.t t/47-mech-simplest.t t/49-launch.t t/49-mech-get +-file.t t/49-mech-nav.t t/49-pipe.t t/49-port.t t/50-follow-link.t t/ +50-form-with-fields-gh48.t t/50-form-with-fields.t t/50-form2.t t/50- +mech-autoclose.t t/50-mech-content.t t/50-mech-ct.t t/50-mech-encodin +g.t t/50-mech-eval.t t/50-mech-forms.t t/50-mech-get-nonexistent.t t/ +50-mech-get.t t/50-mech-new-dsl.t t/50-mech-new.t t/50-mech-redirect. +t t/50-mech-start-url.t t/50-mech-status.t t/50-mech-text.t t/50-popu +p.t t/50-tick.t t/51-click-intrapage.t t/51-mech-form-with-fields.t t +/51-mech-links.t t/51-mech-set-content.t t/51-mech-submit.t t/53-mech +-capture-js-error.t t/56-render-content.t t/58-alert.t t/60-mech-cook +ies.t t/60-mech-custom-headers.t t/61-mech-download.t t/61-screencast +.t t/62-networkstatus.t t/62-viewport-size.t t/65-is_visible-2.t t/65 +-is_visible.t t/65-save-content.t t/65-wait_until_visible.t t/70-mech +-png.t t/75-classnames.t t/76-scroll.t t/77-reload-fragment.t t/78-me +mleak.t t/78-two-instances.t t/99-interactive-single-window.t t/rt127 +588.t t/rt130999.t t/select.t t/00-load.t ................................... 1/1 # Testing WWW::Mec +hanize::Chrome 0.61, Perl 5.024003 # ActivePerl::Config <unknown> # B 1.62 # Carp 1.40 # Carp::Heavy 1.40 # Chrome::DevToolsProtocol 0.61 # Chrome::DevToolsProtocol::EventListener 0.61 # Chrome::DevToolsProtocol::Target 0.61 # Chrome::DevToolsProtocol::Transport 0.61 # Class::Method::Modifiers 2.12 # Class::XSAccessor 1.19 # Class::XSAccessor::Heavy 1.19 # Config 5.024003 # Data::Dumper 2.161 # Devel::GlobalDestruction 0.14 # DynaLoader 1.38 # Errno 1.25 # Exporter 5.72 # Exporter::Heavy 5.72 # Fcntl 1.13 # File::Basename 2.85 # File::Spec 3.6301 # File::Spec::Unix 3.6301 # File::Spec::Win32 3.6301 # Filter::Simple 0.94 # Filter::Util::Call 1.55 # Filter::signatures 0.16 # Future 0.45 # Future::Exception 0.45 # Future::HTTP 0.14 # HTML::Selector::XPath 0.25 # HTTP::Cookies 6.04 # HTTP::Cookies::ChromeDevTools 0.61 # HTTP::Cookies::Netscape 6.04 # HTTP::Date 6.02 # HTTP::Headers 6.13 # HTTP::Headers::Util 6.13 # HTTP::Message 6.13 # HTTP::Response 6.13 # HTTP::Status 6.13 # IO 1.36_01 # IO::Handle 1.36 # IO::Socket 1.38 # IO::Socket::INET 1.35 # IO::Socket::UNIX 1.26 # JSON 2.97000 # JSON::PP 2.27300_01 # List::Util 1.49 # Log::Log4perl 1.50 # Log::Log4perl::Appender <unknown> # Log::Log4perl::Appender::String <unknown> # Log::Log4perl::Config <unknown> # Log::Log4perl::Config::BaseConfigurator <unknown> # Log::Log4perl::Config::PropertyConfigurator <unknown> # Log::Log4perl::Config::Watch <unknown> # Log::Log4perl::DateFormat <unknown> # Log::Log4perl::Filter <unknown> # Log::Log4perl::Filter::Boolean <unknown> # Log::Log4perl::JavaMap <unknown> # Log::Log4perl::Layout <unknown> # Log::Log4perl::Layout::PatternLayout <unknown> # Log::Log4perl::Layout::PatternLayout::Multiline <unknown> # Log::Log4perl::Layout::SimpleLayout <unknown> # Log::Log4perl::Level <unknown> # Log::Log4perl::Logger <unknown> # Log::Log4perl::MDC <unknown> # Log::Log4perl::NDC <unknown> # Log::Log4perl::Util <unknown> # Log::Log4perl::Util::TimeTracker <unknown> # MIME::Base64 3.15 # Method::Generate::Accessor <unknown> # Method::Generate::Constructor <unknown> # Module::Runtime 0.016 # Moo 2.003004 # Moo::HandleMoose::_TypeMap <unknown> # Moo::Object <unknown> # Moo::_Utils <unknown> # Moo::_mro <unknown> # Moo::_strictures <unknown> # Moo::sification <unknown> # POSIX 1.65_01 # PerlIO 1.09 # PerlX::Maybe 1.201 # Scalar::Util 1.49 # SelectSaver 1.02 # SelfLoader 1.24 # Socket 2.024 # Storable 2.56_01 # Sub::Defer 2.004 # Sub::Exporter::Progressive 0.001013 # Sub::Quote 2.004 # Sub::Util 1.49 # Symbol 1.07 # Sys::Hostname 1.2001 # Test::Builder 1.302120 # Test::Builder::Formatter 1.302120 # Test::Builder::Module 1.302120 # Test::Builder::TodoDiag 1.302120 # Test::More 1.302120 # Test2::API 1.302120 # Test2::API::Context 1.302120 # Test2::API::Instance 1.302120 # Test2::API::Stack 1.302120 # Test2::Event 1.302120 # Test2::Event::Bail 1.302120 # Test2::Event::Diag 1.302120 # Test2::Event::Exception 1.302120 # Test2::Event::Fail 1.302120 # Test2::Event::Note 1.302120 # Test2::Event::Ok 1.302120 # Test2::Event::Pass 1.302120 # Test2::Event::Plan 1.302120 # Test2::Event::Skip 1.302120 # Test2::Event::Subtest 1.302120 # Test2::Event::Waiting 1.302120 # Test2::EventFacet 1.302120 # Test2::EventFacet::About 1.302120 # Test2::EventFacet::Amnesty 1.302120 # Test2::EventFacet::Assert 1.302120 # Test2::EventFacet::Control 1.302120 # Test2::EventFacet::Error 1.302120 # Test2::EventFacet::Info 1.302120 # Test2::EventFacet::Meta 1.302120 # Test2::EventFacet::Parent 1.302120 # Test2::EventFacet::Plan 1.302120 # Test2::EventFacet::Trace 1.302120 # Test2::Formatter 1.302120 # Test2::Formatter::TAP 1.302120 # Test2::Hub 1.302120 # Test2::Hub::Interceptor 1.302120 # Test2::Hub::Interceptor::Terminator 1.302120 # Test2::Hub::Subtest 1.302120 # Test2::Util 1.302120 # Test2::Util::ExternalMeta 1.302120 # Test2::Util::HashBase 1.302120 # Test2::Util::Trace 1.302120 # Text::Balanced 2.03 # Tie::Hash 1.05 # Time::HiRes 1.9746 # Time::Local 1.25 # Try::Tiny 0.28 # URI 1.72 # URI::Escape 3.31 # WWW::Mechanize::Chrome 0.61 # WWW::Mechanize::Chrome::Node 0.61 # WWW::Mechanize::Link 1.86 # XSLoader 0.24 # base 2.2301 # bytes 1.05 # constant 1.33 # feature 1.42 # mro 1.18 # overload 1.26 # overloading 0.02 # parent 0.236 # re 0.32 # strict 1.11 # vars 1.03 # warnings 1.36 # warnings::register 1.04 t/00-load.t ................................... ok t/01-chrome-devtools-protocol-target-cycle.t .. 1/8 Unhandled type: GL +OB at C:/Perl64/site/lib/Devel/Cycle.pm line 107. t/01-chrome-devtools-protocol-target-cycle.t .. ok t/01-chrome-devtools-protocol-target.t ........ ok t/01-chrome-devtools-protocol.t ............... ok t/01-select-backend-implementation.t .......... skipped: No backend ot +her than IO::Async available t/02-chrome-devtools-tab.t .................... ok t/03-listener-leak-test.t ..................... ok t/47-mech-simplest.t .......................... ok t/49-launch.t ................................. ok t/49-mech-get-file.t .......................... ok t/49-mech-nav.t ............................... ok t/49-pipe.t ................................... skipped: Pipes are cur +rently unsupported on MSWin32 t/49-port.t ................................... ok t/50-follow-link.t ............................ ok t/50-form-with-fields-gh48.t .................. ok t/50-form-with-fields.t ....................... ok t/50-form2.t .................................. ok t/50-mech-autoclose.t ......................... ok t/50-mech-content.t ........................... ok t/50-mech-ct.t ................................ ok t/50-mech-encoding.t .......................... ok t/50-mech-eval.t .............................. ok t/50-mech-forms.t ............................. ok t/50-mech-get-nonexistent.t ................... ok t/50-mech-get.t ............................... ok t/50-mech-new-dsl.t ........................... ok t/50-mech-new.t ............................... ok t/50-mech-redirect.t .......................... ok t/50-mech-start-url.t ......................... ok t/50-mech-status.t ............................ ok t/50-mech-text.t .............................. ok t/50-popup.t .................................. ok t/50-tick.t ................................... ok t/51-click-intrapage.t ........................ ok t/51-mech-form-with-fields.t .................. ok t/51-mech-links.t ............................. ok t/51-mech-set-content.t ....................... ok t/51-mech-submit.t ............................ ok t/53-mech-capture-js-error.t .................. ok t/56-render-content.t ......................... ok t/58-alert.t .................................. ok t/60-mech-cookies.t ........................... ok t/60-mech-custom-headers.t .................... ok t/61-mech-download.t .......................... ok t/61-screencast.t ............................. ok t/62-networkstatus.t .......................... ok t/62-viewport-size.t .......................... ok t/65-is_visible-2.t ........................... ok t/65-is_visible.t ............................. ok t/65-save-content.t ........................... ok t/65-wait_until_visible.t ..................... ok t/70-mech-png.t ............................... 1/11 Can't call method + "write" on an undefined value at C:\Perl64\cpan\build\WWW-Mechanize- +Chrome-0.61-0\blib\lib/WWW/Mechanize/Chrome.pm line 5348. # Looks like your test exited with 2304 just after 1. t/70-mech-png.t ............................... Dubious, test returned + 255 (wstat 65280, 0xff00) Failed 10/11 subtests t/75-classnames.t ............................. ok t/76-scroll.t ................................. ok t/77-reload-fragment.t ........................ ok t/78-memleak.t ................................ Unhandled type: GLOB a +t C:/Perl64/site/lib/Devel/Cycle.pm line 107. t/78-memleak.t ................................ ok t/78-two-instances.t .......................... Unhandled type: GLOB a +t C:/Perl64/site/lib/Devel/Cycle.pm line 107. t/78-two-instances.t .......................... ok t/99-interactive-single-window.t .............. ok t/rt127588.t .................................. ok t/rt130999.t .................................. ok t/select.t .................................... Use of uninitialized v +alue in split at C:/Perl64/lib/File/Spec/Win32.pm line 169. Use of uninitialized value in split at C:/Perl64/lib/File/Spec/Win32.p +m line 169. t/select.t .................................... ok Test Summary Report ------------------- t/70-mech-png.t (Wstat: 65280 Tests: 1 Fai +led: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 11 tests but ran 1. Files=61, Tests=497, 212 wallclock secs ( 0.17 usr + 0.16 sys = 0.33 + CPU) Result: FAIL Failed 1/61 test programs. 0/497 subtests failed. dmake.exe: Error code 255, while making 'test_dynamic' CORION/WWW-Mechanize-Chrome-0.61.tar.gz one dependency not OK (Imager::File::PNG); additionally test harness f +ailed C:\Perl64\site\bin\dmake.exe test -- NOT OK //hint// to see the cpan-testers results for installing this module, t +ry: reports CORION/WWW-Mechanize-Chrome-0.61.tar.gz C:\Users\mmtho\Documents\PerlProjects>
[download]
============================ Hi Prinet you have:

-excessive use of global variables
-excessive use of goto - I don't see the need for any.
-weird uses of sleep
-weird uses of splice (a very uncommon function)
much more common is to create a new array with a filter
function. Perl is designed to avoid the use of $i,$j,$k etc.
The use of indicies is very error prone and for the most part,
not needed in Perl.
-always check the result of an opendir or an open file
-your UI could be better expressed as a GUI and Perl can do that.

An example of refactoring your code:

###################################################################### +##### # LOAD RESOURCES + # ###################################################################### +##### if (-d $CurrentDirectory.'/Resources') { opendir (DIRECTORY, $CurrentDirectory.'/Resources'); @Directory = readdir(DIRECTORY); closedir (DIRECTORY); shift(@Directory); shift(@Directory); RemoveDirectories: for ($DirectoryEntry = 0; $DirectoryEntry < @Directory; $Directory +Entry++) { if (-d $Directory[$DirectoryEntry]) { splice(@Directory,$DirectoryEntry,1); goto RemoveDirectories; } } } ################# # this could be a subroutine that gets the simple Resource files # underneath the specified directory # # *** untested *** but the idea is sound.... my @file_paths = get_resource_files ($current_directory); print join ("\n",@file_paths),"\n"; sub get_resource_files { my $directory = shift; opendir (my $fh_resource_dir, "$directory/Resources") or die "$directory/Resources does not exist $!"; # grep is a "filter" function. Only an array of simple file # names are returned. There are things that are not a directory # but are also not a simple file. These are weird, but they exist. # Use the -f test for simple files. # # readdir() only returns simple file names, not the full path # I guess you would really want the full path to the files? my @file_paths = map{"$directory/Resources/$_"} grep {-f "$directory/Resources/$_"} readdir $fh_resource_dir; return @file_paths; # the directory file, handle $fh_resource_dir is automatically # closed when my $fh_resource_dir goes out of scope. # A "barewword" like DIRECTORY has global package scope }
[download]
+++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++

Using File::Find

This tutorial shows how to use the File::Find module.

File::Find is a core module, meaning that it is already installed on all Perl systems - no installation is required! If the system has Perl, File::Find is already there!

The find() function is included within that File::Find module. The first step is to tell Perl that you want to use this pre-installed module - that will make the subroutine "find()" known to the rest of the code.

Getting Started:

You need to include a use File::Find; statement at the top of the code, this "imports" the "find" fuction and makes it known to the rest of the code.

What the find() routine does...

The man (manual) page - shown by (perldoc file::find) or via Google search says:
SYNOPSIS:

use File::Find;
find(\&wanted, @directories_to_search);
sub wanted { ... }

I really don't why this "wanted" name got used, but that is a reference to a subroutine name, followed by a list of directory names.

The find() function will cwd (change working directory) into the the first directory in that list and do a readdir(). It will then call the "wanted()" function for every single name from that readdir() list. It might be a directory, it might be a simple file, it might be some kind of linked file/directory (not ususal, but possible).

After find() does that, it will follow the directory names, meaning that it will cwd (change working directory) into the next directory name and continue following it downward calling the "wanted()" function on every "name" whether it be a directory or a simple file or some kind of link.

If we have:

use File::Find; find (\&for_every_name, (C:/temp, C:/Windows); my @allFiles; sub for_every_name { print "$File::Find::name\n"; # note there is no "return value" # it is not possible to return anything from this # subroutine # If you want that: push @allFiles, $File::Find::name; # you must save information in a varialble that has higher # scope than this subroutine # There is NO return value from this subroutine! }
[download]
The above will print the names of all files (and directories and symbolic links) underneath C:/temp and C:/WINDOWS (NOTE: Windows file systems are case insensitive, but Unix file systems are case sensitive - so be aware of that!).

Special Variables

Within the subroutine that the find() routine calls, a couple of special variables to tell you where it is "at":

-$File::Find::name - the name of the file that the "wanted()" function is currently looking at.

-$File::Find:dir - the name of the current directoryt that the wanted() function is currently within.