1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub readFileIntoHash{
my $inputFile = $_[0];
print "using input file $inputFile\n" ;
if (-e $inputFile){
open (HASHFILE,$inputFile) || die "file $inputFile konnte nicht geoeffnet werden\n";
my %exportHash = map { chomp; split /=/, $_, 2; } <HASHFILE>;
close(HASHFILE);
return %exportHash;
}
else{
print "file $inputFile does not exist, returning undef\n";
return undef;
}
}
1
2
3
4
5
6
7
8
9
my %propertyHash = &readFileIntoHash($globalFormPageCfgFile);
if (defined %propertyHash){
print "\n%property is defined \n it contains " . keys(%propertyHash) ."\n" ;
$propertyHash{'pageCount'} = $pageSizeForForm;
}
else{
%propertyHash = ();
$propertyHash{'pageCount'} = $pageSizeForForm;
}
my %propertyHash = (undef);
my %propertyHash = (undef, undef);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
my $propertyHash = readFileIntoHash($globalFormPageCfgFile); if ($propertyHash) { # steht was drin. defined ist hier im prinzip unnötig, test auf wahrheit reicht print "\n\$property is defined \n it contains " . keys(%$propertyHash) ."\n" ; $propertyHash->{pageCount} = $pageSizeForForm; } sub readFileIntoHash { ... return \%exportHash; ... else { return; } }
2011-04-20T11:41:43 crojay
Bei der Referenz-Variante habe ich die Fehlermeldung/Warnung erhalten
Using a hash as a reference is deprecated at F:\extractOrginalPageSize.pl line 101.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
my $propertyHashRef = &readFileIntoHash($globalFormPageCfgFile);
if (defined $propertyHashRef){
print "\n%property is defined \n it contains " . keys(%$propertyHashRef) ."\n" ;
$propertyHashRef->{pageCount} = $pageSizeForForm;
}
else{
print "\nhash is not defined\n";
$propertyHashRef->{pageCount} = $pageSizeForForm;
}
&writeHashToFile($propertyHashRef,$globalFormPageCfgFile);
return $pageSizeForForm;
#####################################################################################################################
###Falls die übergebene Datei existiert, werden die Werte in einen Hash gelesen, sofern sie dem format
###KEY=VALUE entsprechen
###
###Return:Referenz auf den Hash oder nichts
#####################################################################################################################
sub readFileIntoHash{
my $inputFile = $_[0];
print "using input file $inputFile\n" ;
my %exportHash;
if (-e $inputFile){
open (HASHFILE,$inputFile) || die "file $inputFile konnte nicht geoeffnet werden\n";
%exportHash = map { chomp; split /\s*=\s*/, $_, 2; } <HASHFILE>;
close(HASHFILE);
return \%exportHash;
}
else{
print "file $inputFile does not exist, returning undef\n";
return;
}
}
#####################################################################################################################
###Erwartet als Inputparameter eine HashRef und ein Dateinamen
###
###Schreibt den Inhalt des HASH in die Datei im Format
###KEY=VALUE
#####################################################################################################################
sub writeHashToFile{
my %inputHash = %{$_[0]};
my $outputFile = $_[1];
print "writing into file $outputFile\n";
open(OUTFILE, ">$outputFile") || die "file $outputFile konnte nicht geoeffnet werden";
while(my @array = each( %inputHash )){
print OUTFILE "$array[0] = $array[1]\n";
}
close(OUTFILE);
}
2011-04-20T12:05:36 crojayHabe die Warnung für alle Zeilen erhalten, die so ausssahen
%$propertyHash ->{pageCount} = $pageSizeForForm;
Wenn ich das zu
$propertyHash{pageCount} = $pageSizeForForm;
umgewandelt habe, ist auch die Warnung weg.
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
31
32
33
#! /usr/bin/perl
use strict;
use warnings;
use diagnostics;
#---
#my $globalFormPageCfgFile = 'text.txt';
#my $globalFormPageCfgFile = 'textxxxxx.txt';
my $globalFormPageCfgFile = '';
my $pageSizeForForm = '';
#---
sub readFileIntoHash{
my $inputFile = shift || return;
print "using input file $inputFile\n" ;
if (-e $inputFile){
open (HASHFILE,$inputFile) || die "file $inputFile konnte nicht geoeffnet werden\n";
my %exportHash = map { chomp; split /=/, $_, 2; } <HASHFILE>;
close(HASHFILE);
return \%exportHash;
}
else{
print "file $inputFile does not exist, returning undef\n";
return;
}
}
#---
my $Hashref = readFileIntoHash($globalFormPageCfgFile);
if (defined $Hashref){
print "\n%Hashref is defined \n it contains " . keys(%{$Hashref}) ."\n" ;
$Hashref->{'pageCount'} = $pageSizeForForm;
}
else{
print "file $globalFormPageCfgFile does not exist, sorry!\n";
}