Schrift
[thread]8686[/thread]

our: generelle Sinnfrage



<< >> 6 Einträge, 1 Seite
supersucker
 2007-01-26 11:35
#73707 #73707
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
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?
renee
 2007-01-26 11:42
#73708 #73708
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
our macht in Modulen Sinn, wenn Variablen von außen "sichtbar" sein sollen...

Testmodul.pm:
Code: (dl )
1
2
3
4
5
6
7
8
9
package Testmodul;

use strict;
use warnings;

my $test = 'hallo welt!';
our $test2 = 'Test2';

1;


Code: (dl )
1
2
3
~/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-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
supersucker
 2007-01-26 11:55
#73709 #73709
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
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?
renee
 2007-01-26 11:58
#73710 #73710
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein, dann macht es keinen Sinn. Dann sollte man mit my und local arbeiten...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
PerlProfi
 2007-01-26 15:34
#73711 #73711
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Doch, auch dann macht es Sinn.
our macht die Variable ja ausserhalb des packages Sichtbar:
Code: (dl )
1
2
3
4
5
6
7
8
#!/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
renee
 2007-01-26 15:57
#73712 #73712
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ja, mit "einem Script" hat supersucker aber vermutlich nur das package main gemeint. Dann ist es überflüssig...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 6 Einträge, 1 Seite



View all threads created 2007-01-26 11:35.