Hi Stu,<br><br>On Sun, Nov 23, 2008 at 9:15 PM, Stuart Burns <span dir="ltr"><<a href="mailto:stuart.james.burns@gmail.com">stuart.james.burns@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Everyone,<br><br>I am in the process of learning perl but need to finish a program quickly but am stuck on something. I am in the process of creating a very simple script to create a gallery from random files and urls. To expand a bit, what I am trying to do is the following:<br>

<br>read in a file that is in the following format:<br><br>1.jpg|<a href="http://www.site1.com/" target="_blank">http://www.site1.com/</a><br>2.jpg|<a href="http://www.site2.com/" target="_blank">http://www.site2.com/</a><br>
<br>etc all the way up to 500<br>
<br>Then, randomly choose 20 of the images, and put them into a variable so I can spit them out into the format:<br><br> <a href="<a href="http://www.site1.com/" target="_blank">http://www.site1.com/</a>"><Img src="1.jpg"></a><br>

<br>Can anyone please help me with this. The main problem I am having is splitting up the file with the source information in it, as I dont know how to read it into an array and split it.<br></blockquote><div><br>Here's a quick example of opening a file, reading in the contents and splitting via a fixed character.<br>
<br>This opens the file (which contains data in the format you've specified) and uses the perl split() function on each line, I've not gone any further with it, like choosing random values - the data ought to be accessible but if you'd like more let me know:<br>
<br>#!/opt/local/bin/perl -w<br><br>my ($file );<br>my (@stuff );<br><br>$file = "input.text"; # This is the file we're going to read in<br><br>open (DATA, "$file") || die "Can't open file ($file) $!";<br>
while (my $line = <DATA>) {<br><br>  chomp($line); # Remove newlines<br><br>  # Split based on the delimiter |<br>  my ($jpeg, $url) = split(/\|/, $line);<br><br>  push(@stuff, { jpeg => $jpeg, url => $url } );<br>
}<br>close (DATA);<br># end<br><br>What this does is construct an array of hashes, if you pass @stuff through Data::Dumper:<br><br>$VAR1 = {<br>          'url' => '<a href="http://www.site1.com/">http://www.site1.com/</a>',<br>
          'jpeg' => '1.jpg'<br>        };<br>$VAR2 = {<br>          'url' => '<a href="http://www.site2.com/">http://www.site2.com/</a>',<br>          'jpeg' => '2.jpg'<br>
        };<br><br>So you'll be able to access any of the values via:<br><br>$stuff[$i]{'jpeg'} and $stuff[$i]{'url'} where $x is the array index.<br> <br>Hope that's of some use.<br><br>Mark<br></div>
</div><br>