Struppi: Unterschied: 'new CGI' und 'CGI->new'

Beitrag lesen

ich finde das schon sehr strange, daß

CGI->new
new CGI
CGI.new


>   
> immer zum selben ergebnis führt.  
  
Wie ich in meinem Posting erklärt habe, weil der erste Parameter für die Funktion new immer der Gleiche ist nämlich CGI.  
  

> > > Doch, das ergibt einen Unterschied. Am besten probierst du es einfach aus:  
> > > ~~~perl
  

> > > print $foo;  
> > > print $bar;  
> > > 

das mit dem unterschied versteh ich nicht so ganz. denn wenn ich alles richtig verstanden habe wird durch den 'new' konstruktor eine neue instanz von CGI erstellt egal mit welcher der drei oben genannten möglichkeiten ich das mache. und die variable z.b. $foo hat dann ne referenz drauf.

Es gibt keinen new Konstruktor in Perl. Das ist eine beliebige Funktion, die zufälligerweise oft so genannte wird, weil es in anderen Sprachen so ist.
Diese Funtion segnet ein Objekt, meistens das was als erster Parameter übergeben wird. (mehr dazu in Perldoc)

wenn ich mir die ausgabe von obigem code anschauen steht da irgendwas wie:

CGI=HASH(...)


>   
> wobei der hex wert von hash wahrscheinlich die adresse des objektes ist. natürlich muß die ausgabe von $foo und $bar eine andere sein, da es nicht das selbe objekt ist.  
  
Das ist widerrum richtig.  
  
Struppi.

-- 
[Javascript ist toll](http://javascript.jstruebig.de/) (Perl auch!)