asin, acos und atan mit dereferenzierten Variablen

17/11/2007 - 10:01 von Markus Hochholzer | Report spam
Hallo zusammen,

kann mir jemand erklàren, warum folgendes Skript nicht funktioniert.
$A->[2]->[0] enthàlt den Wert -0.9999859

#!/usr/bin/perl -w
use strict;

use constant PI => 4 * atan2(1, 1);
use Math::Trig;

my $Wy = ${$A->[2]}[0];
my $Ryrad = Math::Trig->asin($Wy);

In der Routine von asin in Complex.pm steht nun folgendes:
my ($z) = $_[0];

Ich weiß mittlerweile auch, daß es nicht geht, weil sozusagen der Typ
der Variable und nicht der Wert übergeben wird.
Aber mit my $Wy = ${$A->[2]}[0]; habe ich doch dereferenziert. Oder
nicht? Wie dereferenziert man den Wert einer zweidimensionalen Matrix
richtig?

Wenn ich in Complex.pm
my ($z) = $_[1];
verwende, dann funktioniert es.


Gruß Markus
 

Lesen sie die antworten

#1 Frank Seitz
17/11/2007 - 18:02 | Warnen spam
Markus Hochholzer wrote:

kann mir jemand erklàren, warum folgendes Skript nicht funktioniert.
$A->[2]->[0] enthàlt den Wert -0.9999859

#!/usr/bin/perl -w
use strict;

use constant PI => 4 * atan2(1, 1);
use Math::Trig;

my $Wy = ${$A->[2]}[0];
my $Ryrad = Math::Trig->asin($Wy);



Das Programm làuft nicht:
Global symbol "$A" requires explicit package name [...]

Grüße
Frank
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen