User since
2005-03-17
118
Artikel
BenutzerIn
Hallo zusammen,
Ich weiss was "our" tut, aber wann würde ich denn our verwenden?
Weder mein Kamel-Buch noch google konnten mir eine sinnvolle Verwendung von our erklären.
Die gefundenen Beispiele erklären nur was es macht, aber ehrlich gesagt deklariere ich in meinen scripten einfach alles mit my und oder local.
Angenommen mal ich habe ein script in dem ich ganz oben irgendwelche Konstanten deklariere, so ist es doch völlig egal, ob ich die mit our oder my deklariere, die sind doch so oder so global??
Kann mir vielleicht jemand ein kurzes Beispiel nennen wo es sinnvoll ist Variablen mit our zu deklarieren?
User since
2003-08-04
14371
Artikel
ModeratorIn
our macht in Modulen Sinn, wenn Variablen von außen "sichtbar" sein sollen...
Testmodul.pm:
package Testmodul;
use strict;
use warnings;
my $test = 'hallo welt!';
our $test2 = 'Test2';
1;
~/entwicklung 78> perl -MTestmodul -le 'print $Testmodul::test; print $Testmodul::test2'
Test2
edit: Und
warnings gibt Dir bei
$Testmodul::test auch eine Warnung...\n\n
<!--EDIT|renee|1169804666-->
User since
2005-03-17
118
Artikel
BenutzerIn
Danke für die Erhellung Renee,
aber jetzt noch mal dumm gefragt:
Angenommen ich habe genau ein script, so würde dir auch keine sinnvolle Verwendung von our einfallen?
User since
2003-08-04
14371
Artikel
ModeratorIn
Nein, dann macht es keinen Sinn. Dann sollte man mit
my und
local arbeiten...
User since
2006-11-29
340
Artikel
BenutzerIn
Doch, auch dann macht es Sinn.
our macht die Variable ja ausserhalb des packages Sichtbar:
#!/usr/bin/perl
package Test;
my $test = "hallo";
our $test2 = "welt";
package main;
print $Test::test, "\n";
print $Test::test2, "\n";
Das Beispiel gibt nur welt aus.
MfG PerlProfi
User since
2003-08-04
14371
Artikel
ModeratorIn
Ja, mit "einem Script" hat supersucker aber vermutlich nur das package main gemeint. Dann ist es überflüssig...