Schrift
[thread]8516[/thread]

Problem bei Übergabe von Variablen an Subroutine



<< >> 5 Einträge, 1 Seite
krusty
 2006-11-20 10:29
#71869 #71869
User since
2006-01-27
91 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

habe ein kleines Problem mit meinem nachfolgenden Script.
Ich will sowohl ein Array als auch einen String übergeben.

Wie kann ich jetzt nur auf den String und nur auf das Array in der Sub zugreifen. So wie ich es momentan habe, bekomme ich den Inhalt des Strings auch in dem Array angezeigt.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl -w

use strict;
use warnings;

my $path = "/Krusty/Desktop/Scripte";
my $infile = "testfile.csv";
my @file = ();
my $test1 = "KEINE AHNUNG";

open(INPUT, "<$path/$infile") || die "Cannot open file $infile!\n";
while(<INPUT>)
{
chomp($_);
push(@file, $_);
}
close(INPUT);

test($test1, @file);

sub test
{
my $next = $_[0];
print $next."\n";
my @neu = @_;
foreach my $x (@neu)
{
print $x."\n";
}
}


Könnt ihr mir sagen oder nen Tipp geben wie ich es anstellen kann, das der Inhalt der Variable getrennt übergeben wird.

Gruß
Krusty
Ronnie
 2006-11-20 10:38
#71870 #71870
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=krusty,20.11.2006, 09:29]Könnt ihr mir sagen oder nen Tipp geben wie ich es anstellen kann, das der Inhalt der Variable getrennt übergeben wird.[/quote]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
sub test
{
my $next = shift; # get and remove first item from @_
print $next."\n";
my @neu = @_;
foreach my $x (@neu)
{
print $x."\n";
}
}
renee
 2006-11-20 10:52
#71871 #71871
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schöner finde ich
Code: (dl )
1
2
3
4
5
6
7
sub test{
my ($next,@neu) = @_;
print $next;
for my $x(@neu){
print $x,"\n";
}
}


Da hat man das "abgrifen" der Parameter in einer Zeile. Macht es (meiner Meinung nach) übersichtlicher als wenn man an verschiedenen Stellen in der Subroutine ein shift stehen hat.
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/
Ronnie
 2006-11-20 10:58
#71872 #71872
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
@renee: Ich stimme dir zu.

Man kann aber insgesamt fragen wieso krusty die ganze Datei erst in ein Array laden will. Direkte Verarbeitung in der while-Schleife spart Speicher. CPAN:Tie::File könnte auch hilfreich sein und da es anscheinend um .csv-Dateien gehen soll ist der Hinweis auf CPAN:Text::CSV_XS auch angebracht.

Jetzt habe ich aber genug Verwirrung gestiftet ;)
nepos
 2006-11-20 13:02
#71873 #71873
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, und warum keine Arrayreferenz uebergeben?
<< >> 5 Einträge, 1 Seite



View all threads created 2006-11-20 10:29.