Schrift
[thread]6162[/thread]

Wie kann man dies eleganter schreiben?: Einem Satz scalars die Kommas klauen. (Seite 2)



<< |< 1 2 3 >| >> 21 Einträge, 3 Seiten
pq
 2004-03-26 13:49
#81246 #81246
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=format_c,26.03.2004, 00:52]
Code: (dl )
1
2
my @list[0..7] = splice(@array,0,8);
map { s/\.//g } @list;

So vielleicht?[/quote]
bitte vorher testen:
syntax error at -e line 2, near "@list["
und wenn du den rückgabewert von map gar nicht brauchst, warum nimmst du dann nicht for?
s/\.//g for @list;
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Taulmarill
 2004-03-26 14:20
#81247 #81247
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
man sollte hier evtl. noch anmerken, dass man $a und $b nicht ohne weiteres benutzen kann, da die für sort gebraucht werden.
hat eigendlich mal einer ne vollständige liste aller internen variablen?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2004-03-26 14:46
#81248 #81248
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
perldoc perlvar
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/
sri
 2004-03-26 15:05
#81249 #81249
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Strat,26.03.2004, 11:24]
Code: (dl )
1
2
3
4
my ($a, $b, $c, $d, $e, $f, $g, $h) = splice(@array, 0, 8);
foreach ($b, $c, $d, $e, $f, $g) {
s/\.//g;
}
[/quote]
Code: (dl )
1
2
my ( $a, $b, $c, $d, $e, $f, $g, $h ) = splice @array, 0, 8;
s/\.//g foreach $b, $c, $d, $e, $f, $g;

So find ichs noch etwas hübscher. ;)\n\n

<!--EDIT|sri|1080313464-->
esskar
 2004-03-26 19:18
#81250 #81250
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
dann doch lieber so:

Code: (dl )
1
2
my @list = splice(@array,0,8);
s/\.//g foreach @list[1..6];
esskar
 2004-03-26 20:39
#81251 #81251
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
oder noch besser (weil das splice ja unnötig ist)
Code: (dl )
1
2
my @list = @array[0..8];
s/\.//g foreach @list[1..6];
DemoFreak
 2004-03-27 18:09
#81252 #81252
User since
2003-09-06
54 Artikel
BenutzerIn
[default_avatar]
Nönö, das splice ist schon nötig, weil das Ganze in einer Schleife so lange arbeitet, bis das @array "aufgebraucht" ist. Und @list verwende ich auch nicht, da es schon einzelne Skalare sein sollen, einfach der Lesbarkeit wegen. Die heissen auch nicht wirklich $a..$h, sondern haben beschreibende Namen, aber das wollte ich euch hier nicht antun ;).
Demzufolge sind strats und sris Versionen für mich die schönsten.

Danke nochmal. :)
Gruss, Hannes
Strat
 2004-03-28 18:17
#81253 #81253
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
dann koenntest du vielleicht auch das splice als slice auch im schleifenkopf verwenden und so auf die benannten Variablen verzichten (ich weiss halt nicht, ob es das ist, was du brauchst, weil da $a und $h verloren gehen wuerden), z.B.
Code: (dl )
1
2
3
4
5
6
foreach ( 
 ( splice(@array, 0, 8) )[1..6]
) {
s/\.//g;
 # sichere $_ oder mach sonst was damit...
} # foreach
\n\n

<!--EDIT|Strat|1080483459-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
ptk
 2004-03-29 13:32
#81254 #81254
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Taulmarill,26.Mar..2004, 13:20]man sollte hier evtl. noch anmerken, dass man $a und $b nicht ohne weiteres benutzen kann, da die für sort gebraucht werden.
hat eigendlich mal einer ne vollständige liste aller internen variablen?[/quote]
Man kann schon, und sort() lokalisiert auch immer brav, so dass es nicht zu Konflikten kommt. Aber es ist etwas ueberraschend, wenn man "use strict" schreibt und trotzdem das "my" vor $a und $b vergessen kann...
Ishka
 2004-03-29 23:34
#81255 #81255
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=Strat,26.03.2004, 11:24]map-in-void-kontext wird wohl bei zukuenftigen perl-versionen nicht mehr funktionieren, weil es vom parser wegoptimiert wird... und haesslich ist es obendrein...

[...][/quote]
Ich fürchte, du siehst das leider falsch. map-in-void-kontext soll angeblich so optimiert werden, daß es genauso schnell wird, wie wenn man zB. einmal durchläuft..
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
<< |< 1 2 3 >| >> 21 Einträge, 3 Seiten



View all threads created 2004-03-26 01:46.