Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5738[/thread]

Array in Skalar

Leser: 1


<< >> 8 Einträge, 1 Seite
Sven
 2003-09-18 15:44
#53881 #53881
User since
2003-08-26
20 Artikel
BenutzerIn
[default_avatar]
Hallo,
wie kann ich ein Array in einen Skalar pressen?
Also:
$Array[0] = "h";
$Array[1] = "i";
$Array[2] = " ";
$Array[3] = "D";
$Array[4] =  "u";

So soll es dann aussehen:
In $satz = "hi Du";


Danke
Sven\n\n

<!--EDIT|Sven|1063886181-->
Sven
 2003-09-18 15:56
#53882 #53882
User since
2003-08-26
20 Artikel
BenutzerIn
[default_avatar]
Hab gerade rausgefunden.
$satz = join ("", @Array);
Crian
 2003-09-18 19:18
#53883 #53883
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
oder per Hand, ungefähr so wie in diesem Beipiel:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;

sub bubifizier(@) {
my @array = @{shift()};
my $string = '';

for (@array) {
$string .= $_;
$string .= "b$_" if /[aeiuo]/;
}

return $string;
}

my @Array = split //, 'Dies ist ein dummer Testtext...';
print bubifizier(\@Array);

Dibiebes ibist ebeibin dubummeber Tebesttebext...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Gast Gast
 2003-09-18 19:40
#53884 #53884
Mal sehen, ob dieser Alias noch ebensolchen Anstoß erregt.

Zu Arrays,

selbstverständlich ist, wie gezeigt, die Verwendung von join() die eleganteste Methode, um aus Listen Strings zu machen.
(n.b. split() kehrt's wieder um)
Da aber TIMTOWTDI gilt, könnte man auch die interpolierende Wirkung der double quotes ausnutzen

e.g.

$string = "@list";

Natürlich kann man auch beliebig "loopen", wie in dem anderen Posting gezeigt.
Crian
 2003-09-18 19:42
#53885 #53885
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Wie wärs, wenn Du Dich einfach registrierst (mit einem nicht Anstoß erregendem Namen)? Dann wüsste man, wer DU bist, so kann man nur raten ;-)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Crian
 2003-09-18 19:46
#53886 #53886
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
[quote=Guest,18.09.2003, 17:40]Mal sehen, ob dieser Alias noch ebensolchen Anstoß erregt.

Zu Arrays,

selbstverständlich ist, wie gezeigt, die Verwendung von join() die eleganteste Methode, um aus Listen Strings zu machen.
(n.b. split() kehrt's wieder um)
Da aber TIMTOWTDI gilt, könnte man auch die interpolierende Wirkung der double quotes ausnutzen

e.g.

$string = "@list";

Natürlich kann man auch beliebig "loopen", wie in dem anderen Posting gezeigt.[/quote]
Nicht ganz:

Code: (dl )
1
2
3
4
5
6
7
use strict;

my @list = split //, "Beispiel String";

my $string = "@list"; print $string, "\n";

{local $"=''; $string = "@list"; print $string, "\n"; }


Ergebnis:

Code: (dl )
1
2
B e i s p i e l   S t r i n g
Beispiel String
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
[E|B]
 2003-09-18 19:51
#53887 #53887
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=Crian,18.09.2003, 17:42]Wie wärs, wenn Du Dich einfach registrierst (mit einem nicht Anstoß erregendem Namen)? Dann wüsste man, wer DU bist, so kann man nur raten ;-)[/quote]
Glaube er ist der "Flachwichser"!
Stimmts!? :D
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Crian
 2003-09-18 19:54
#53888 #53888
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
psssssst ... wie undezent ;-)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 8 Einträge, 1 Seite



View all threads created 2003-09-18 15:44.