#!/usr/bin/env perl use utf8; use strict; use Text::CSV; use Encode 'encode'; ### read the output my $resultsFile = "results.txt"; open my $fh, "<:encoding(utf8)", $resultsFile or die "cannot open re +sults file $resultsFile for reading: $!"; my @urls = grep {/\/search\//} <$fh>; close ($fh); print "Content-type: text/html; charset=utf-8\n\n"; print "

Pre-sort

\n"; print "

Same, but encoded

\n"; # sort @urls based on the search string my @sorted_urls = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { m|/search/\s*([^\?]+)\?|; [$_, $1] } @urls; my $csv = Text::CSV->new ({binary => 0, sep_char => "|"}); print "

Broken sorted

\n"; # parse and print print ''; foreach my $row (@sorted_urls) { # print TEMP $row; $csv->parse ($row); my @els = $csv->fields; $els[0] =~ /\/search\/(.+)\?scope=/i; my ($term) = $1; my ($link) = $els[0]; print ""; print qq##; print "\n" for @els[1 .. 4]; print "\n"; } print '
$term$_
'; print "

Same, but encoded

"; # parse and print print ''; foreach my $row (@sorted_urls) { # print TEMP $row; $csv->parse ($row); my @els = $csv->fields; $els[0] =~ /\/search\/(.+)\?scope=/i; my ($term) = $1; my ($link) = $els[0]; print ""; print encode ('UTF-8', qq##); print "\n" for @els[1 .. 4]; print "\n"; } print '
$term$_
';