Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Februar

SELFHTML Forumsarchiv
Globale und lokale Variablen definieren

Informationsseite
  1. Seite (PERL) Globale und lokale Variablen definieren von Stefan, 28. 02. 2006, 16:24
nach unten

Globale und lokale Variablen definieren

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.



nach obennach unten

Globale und lokale Variablen definieren

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 -

nach obennach unten

Globale und lokale Variablen definieren

Die folgende Nachricht zum Thema stammt von: Stefan, 28. 02. 2006, 21:01

hi Erwin,

danke dir vielmals!

bye

Stefan

nach obennach unten

Globale und lokale Variablen definieren

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.

nach obennach unten

Globale und lokale Variablen definieren

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 ...

nach obennach unten

Globale und lokale Variablen definieren

Die folgende Nachricht zum Thema stammt von: Stefan, 01. 03. 2006, 00:33

Hi EisFuX,

danke dir !

Werde es gleich mal testen....

nach obennach unten

Globale und lokale Variablen definieren

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

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von Februar

© 1998-2006 Seite Impressum, Software: Classic Forum