in reply to format trouble

Hello grasshopper!!!,

Anonymous Monk may well be right to recommend that you change to Perl6::Form, but in the meantime what you are trying to do is quite possible with format:

#! perl use strict; use warnings; use LWP::Simple; my @data; format NASDAQ_HEADER = SYMBOL Name High Low + Close Volume Change +/- ---------------------------------------------------------------------- +--------------------------------------------------- . format NASDAQ_FORMAT = @<<<<< @<<<<<<< @###.##### @###.#### @### +.#### @||||||||||| @###.### @##.## @data . for my $i ('O' .. 'Q') { # Retrieve data from URL my $url = 'http://eoddata.com/stocklist/NASDAQ/' . $i . '.htm'; my $str = get($url) or die "Cannot get URL '$url': $!"; print "Retrieved URL: $url\n"; my @array = ($str =~ m/.+?Chart for NASDAQ,\w+?">(.+?)<\/A><\/td>< +td>(.+?)<\/td><td align=right>(\d+?\.\d+?)<\/td><td align=right>(\d+? +\.\d+?)<\/td><td align=right>(\d+?\.\d+?)<\/td><td align=right>(\d+?, +?\d+?,?\d+?)<\/td><td align="right">(-?\d+?\.\d+?)<\/td><td align="ce +nter"><IMG.+?><\/td><td align="left">(-?\d+?\.\d+?)<\/td>.+?/gi); # Prepare output file and format my $out = 'nasdaq_list_format' . $i . '.txt'; open(my $fh, '>', $out) or die "Cannot open file '$out' for writin +g: $!"; my $ofh = select $fh; # Select filehandle for write( +) local $^L = ''; # Suppress form feed local $% = 1; # Set current page number local $^ = 'NASDAQ_HEADER'; # Set format header local $~ = 'NASDAQ_FORMAT'; # Set format local $= = @array / 8 + 5; # Set lines per page # Write formatted output to file write $fh while @data = splice @array, 0, 8; # Tidy up close $fh or die "Cannot close file '$out': $!"; select $ofh; # Restore old filehandle (STDI +N) }

Some notes:

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: format trouble
by Anonymous Monk on Oct 18, 2015 at 19:16 UTC

    Thanks for your quick help, very grateful. grasshopper!!!