Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: perl error

by dreadpiratepeter (Priest)
on Jul 28, 2011 at 22:57 UTC ( #917360=note: print w/ replies, xml ) Need Help??


in reply to perl error

In the line in question, you are dealing with one element of the array, which is a scalar, so you use $ not @. To demonstrate with a simpler example, @a is an array. $a[0] is the first element in the array.



-pete
"Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."


Comment on Re: perl error
Re^2: perl error
by topaz (Initiate) on Jul 28, 2011 at 23:50 UTC
    you mean i should do some thing like this ? :s
    use strict; #-- Define in/out files my $inf = "test.txt" ; #-- variables and handles my $line; my $a; my $b; my @result; @row = ((0) x 361); @column = ((0) x 361); my @Matrix = ( @row, @column); #--Open the input and output files open (IN, "$inf") || die "Can't read $inf"; while ($line = <IN>) { @result = split(/\s+/, $line); $a = $result[0]; $a = int($phi); $b = $result[1]; $b = int($psi); @Matrix[$row[($a+180)]][$column[($b+180)]] += 1; }
        Yes ofcourse, sorry I missed that :s Many thanks for your help :)
        He definitely wants $row[$a+180] rather than $row($a+180) in the matrix operation, but I really think he wants just $a+180, since he never fills @row and @column with anything other than 0.


        -pete
        "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
      Actually, your code has a number of problems.
      • that isn't how you initialize a 2-dimensional array. your initialization of @matrix will make a 722 element 1d array. You would need something like: @matrix=map {[(0) x 361]} (0..361);
      • From what I can see you want:  $Matrix[$a+180][$b+180] += 1;

      I would suggest giving Modern Perl or Learning Perl and Programming Perl a good read to get down some of the fundamentals.

      Update: Also you set $a and $b to values, then immediately set them to int($phi) and int($psi) which are undefined. If you were running with strict and warnings the compiler would have shown you that.



      -pete
      "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
        Many thanks for your advice :) I will try my best

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://917360]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (15)
As of 2014-08-29 16:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (282 votes), past polls