QuoteAnders soll es aber beim Leerschritt (space) sein.
1 2
my %h = ("key mit spaces" => 23, "noch mehr spaces" => 42); say $h{"key mit spaces"};
1 2 3 4 5 6 7 8 9 10 11 12
use strict; use warnings; use 5.010; my $pfad = '/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/b lah/bl ah/blah/blah/BO OOH.BAR'; my %hash = ( $pfad => '123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF123456FFCAFFEEDEADBEEF' ); say for keys %hash;
Guest Achim PabelUnd wenn ich Deine Aussage jetzt richtig verstehe "Perl ist nicht Shell." dann reicht also:
$MeinHash{ $PfadFileString } = $Md5SumString;
völlig aus, auch dann, wenn der Pfad oder der Dateiname einen Leerschritt enthält.
Quote> [hlubenow]: Raubtier hatte oben schon geschrieben, daß man Leerzeichen
> in Hash-Keys benutzen kann, wenn man nur Anführungszeichen um den
> String macht.
Demnach müsste ich dann doch wieder
$MeinHash{ "$PfadFileString" } = $Md5SumString;
verwenden.
1 2 3 4
$hash{"irgendwas mit spaces"} = 0; # oder: my $key = "irgendwas mit spaces"; $hash{$key} = 0;
QuoteMit meinem schlechten Englisch habe ich auf einer Perl-Seite verstanden, dass man einen Pfad als Hash-Key nicht nutzen soll, weil der zu lang ist.
2015-11-18T16:06:47 Jiep1963$MeinHash{ q/$PfadFileString/ } = $Md5SumString
2015-11-18T16:50:02 LinuxerNaja, fehlerhaftes oder fehlendes korrektes Quoting durch den Anwender oder Programmierer ist aber kein Problem der Bash.
if [[ $a == "$b" ]] ; then echo "ok ohne quotes links"; fi
if [ $a = "$b" ] ; then echo "AUA, BITTE NICHT!!"; fi