my final goal is to loop through each filename and count how many times each filename 
appears, example:
archive/summer.html 2
arts.html 2
arttherapy.html 3.


for right now, I'm just trying to loop through the array @url.
Next step would be to compare whats in $line with what's in $url[$i] and if it's 
different reset the counter...

my understanding of scalar(@url) is that it should give me the total count for the 
number of filenames.
What I expected $i to do, was to keep increasting to 732 (as this is the number of 
lines in the data.txt file)

still confused,
Pam












---------------------------
 Hi Pam

$i is incrementing. Your loop starts with $i at zero, as shown by your
trace. The print statement executes, $i is incremented to 1, your test $i <
$num is made and found to be false ($i == $num) so the loop executes.

I'm not sure exactly what you're wanting. The line split(/ /, $line) will
split each record on whitespace, so will return the list ('021211',
'archive/summer.html') for the first record. This will assign $date =
'021211', @url = ('archive/summer.html'), a single-element list.

If you're intending to split on the '/' path separator then I suggest

   ($date, $url) = split(/ /, $line);
   @url = split /\//, $url;

which will give $date = '021211', $url = 'archive/summer.html', @url =
('archive', 'summer.html'). Is this what you want?

Cheers,

Rob





----- Original Message -----
From: "Pam Derks" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, December 17, 2002 2:50 PM
Subject: problems with scalar(@array)


> Howdy,
>
> why isn't $i incrementing?
>
> here's sample of data file containing date and filename:
> 021211 archive/summer.html
> 021211 archive/summer.html
> 021211 archive/tipsheet.html
> 021211 ats.html
> 021211 arts.html
> 021211 arttherapy.html
> 021211 arttherapy.html
> 021211 arttherapy.html
> 021211 award.html
> 021211 award.html
> 021211 award.html
> 021211 award.html
> 021211 bio.html
> 021211 bio.html
>
> here's the code thus far:
>
>      1  #!/usr/bin/perl -w
>      2
>      3  get_data();
>      4
>      5  #get data, split into date, and url
>      6  sub get_data{
>      7
>      8      open(IN, "/dept/unxmkt/bin/hits_news/data.txt") or die ("There
is n
> o file: $!\n");
>      9
>     10      open OUT, ">>/dept/unxmkt/bin/hits_news/log.txt") or die ("no
cant write to out file $!\n");
>     11
>     12      my @url = ();
>     13      my $line = 0;
>     14      my $date = 0;
>     15      my $num = 0;
>     16
>     17      while ($line=<IN>) {
>     18            chomp($line);
>     19            ($date, @url)=split(/ /, $line);
>     20
>     21            $num = scalar(@url);
>     22            print ("num = $num\n");
>     23
>     24            for ($i=0; $i<$num; $i++){
>     25                  print ("$i = $url[$i]\n");
>     26            }
>     27
>     28      }
>     29
>     30
>     31
>     32      close IN;
>     33      close OUT;
>     34
>     35  } #end get_data
>
>
>
>
> output:
> num = 1
> 0 = archive/summer.html
> num = 1
> 0 = archive/summer.html
> num = 1
> 0 = archive/tipsheet.html
>
> thanks for any help,
> Pam
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> 

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to