Hey there, thanks a lot for the the code. I've been playing around with it trying to get it to work. I added the CSV webpages and dates. As well as changed the print to an output at the bottom. But no luck on this at all. Keep getting "Can't find string terminator "http" anywhere before EOF" and stuff like that.
use strict;
use warnings;
use Text::CSV;
START_DATE=$(date '+%Y-%m-%d' -d "-1 month");
END_DATE=$(date '+%Y-%m-%d');
my $page1 = <<http://url/website.com/thing?end_date=$END_DATE&start_da
+te=$START_DATE&type=csv;
512.45,c100
6734, c200
5653.2, c300
PG1CSV
my $csv = Text::CSV->new();
my %idData;
open my $pg1In, '<', \$page1;
while (my $row = $csv->getline($pg1In)) {
s/^\s+|\s+$//g for @$row;
$idData{$row->[1]}{size} = $row->[0];
$idData{$row->[1]}{name} = '-- missing --';
}
close $pg1In;
my $page2 = <<https:/url/website.com/thing?end_date=$END_DATE&start_da
+te=$START_DATE&type=csv;
c100, Joe Shmo c200, Jack Black c300, Cinderella c400, Barack Obama c5
+00, Cruella Deville
PG2CSV
$page2 =~ s/\b(?=\w+,)/\n/g; # Insert newlines in front of id codes
open my $pg2In, '<', \$page2;
while (my $row = $csv->getline($pg2In)) {
next if !$row->[0]; # Skip blank lines
s/^\s+|\s+$//g for @$row;
$idData{$row->[0]}{name} = $row->[1];
$idData{$row->[0]}{size} //= '-- missing --';
}
close $pg2In;
for my $id (sort keys %idData) {
$output .= "$id: $idData{$id}{name} size $idData{$id}{size}\n";
}
curl -s -G "$output" | mail -s "send the thing for $END_DATE" name@nam
+e.com
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|