![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Stefan, 28. 02. 2006, 16:24
Hallo zusammen,
ist es syntaktisch richtig, wenn ich globale Variablen mit our und lokale Variablen mit my definiere?
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
# globale Variablen...
our ($gVar1,gVar1);
sub test
{
# lokale Variablen...
my ($lVar1,lVar1);
}
Wie definiere ich denn einen Filezeiger global und lokal?
open(FILE, "...");
Mit our *FILE und my *FILE bekomme ich einen Fehler.
Danke im voraus.
Die folgende Nachricht zum Thema stammt von: Erwin, 28. 02. 2006, 18:14
Hi,
»» ist es syntaktisch richtig, wenn ich globale Variablen mit our und lokale Variablen mit my definiere?
ja!
»» Wie definiere ich denn einen Filezeiger global und lokal?open ({my,our} $FILE, "...") or die $!;
- Erwin -
Die folgende Nachricht zum Thema stammt von: Stefan, 28. 02. 2006, 21:01
hi Erwin,
danke dir vielmals!
bye
Stefan
Die folgende Nachricht zum Thema stammt von: Stefan, 28. 02. 2006, 21:47
Hi Erwin,
»» open ({my,our} $FILE, "...") or die $!;
open(my $FILE, "$gFile") || die("can't read $gFile, $!");
Wenn ich das so definiere, gehen leider die Dateifunktionen nicht.
FILE muss doch die Adresse des Filezeigers haben, dann kann man doch auch nicht my $FILE schreiben.
Die folgende Nachricht zum Thema stammt von: EisFuX, 28. 02. 2006, 23:55
Hallo Stefan,
»» »» open ({my,our} $FILE, "...") or die $!;
»» open(my $FILE, "$gFile") || die("can't read $gFile, $!");
»» Wenn ich das so definiere, gehen leider die Dateifunktionen nicht.
»» FILE muss doch die Adresse des Filezeigers haben, dann kann man doch auch nicht my $FILE schreiben.
Die Verzeichnis- und Dateihandles von Perl sind keine richtigen Variablen. Sie haben so eine Art Sonderstatus.
Ich würde dir raten, das Perl-Modul IO::File einzubinden. Das stellt Dateihandles als Objekte zur Verfügung.
Die kannst du dann wie gewöhnliche Variablen verwenden -- also auch mit "my" oder "our". Auch die Übergabe als
Parameter für Subroutinen ist damit möglich.
Die Benutzung ist relativ unkompliziert, es lassen sich alle üblichen Ein- und Ausgabeoperationen von Perl
auf diese Filehandles anwenden, und das Modul ist gut dokumentiert:use IO::File;
# Filehandle initialisieren
$fh = new IO::File;
# Datei öffnen, anzeigen und schließen
if ($fh->open("< file")) {
print <$fh>;
$fh->close;
}
$fh = new IO::File "> file";
if (defined $fh) {
# in Datei schreiben
print $fh "bar\n";
$fh->close;
}
MffG
EisFuX
--
... Suchmaschinen-Blog ...
Die folgende Nachricht zum Thema stammt von: Stefan, 01. 03. 2006, 00:33
Hi EisFuX,
danke dir !
Werde es gleich mal testen....
Die folgende Nachricht zum Thema stammt von: Struppi, 01. 03. 2006, 08:37
»» Wie definiere ich denn einen Filezeiger global und lokal?
global sind sie von Hause aus, lokal definierst du sie mit local oder auch gensym aus dem Modul symbol
Struppi.
--
Javascript ist toll
© 1998-2006
Impressum, Software: Classic Forum