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

split: problem..

Leser: 2


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
steinwolf
 2004-07-13 21:53
#84244 #84244
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
if( my $name = split("\.", $filename)[0] eq envhash{suchbegriffe} ) {print "GEFUNDEN!!!!!!"}



warum darf ich die [0] da nicht hinschreiben? Wie kann ich das sonst schreiben? Diese da will ich nicht! Ich brauch nur die erste var, und will darum keine temporäre nutzlose anlegen:

Code: (dl )
1
2
my ($name,  $temp) = split("\.", $filename)
if...undsoweiter
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
tomlong
 2004-07-13 22:01
#84245 #84245
User since
2003-08-04
93 Artikel
BenutzerIn
[default_avatar]
(split "\.", $filename)[0]

so sollte es funzen
Live long and prosper!
42;
steinwolf
 2004-07-13 22:20
#84246 #84246
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
hab ich doch geschrieben, funzt aber nicht!!
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
pq
 2004-07-13 22:27
#84247 #84247
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=steinwolf,13.07.2004, 19:53]
Code: (dl )
my $name = split("\.", $filename)[0]
[/quote]
du splittest an einem punkt?
gibt es einen besonderen grund, warum du split() keine regex,
sondern einen string übergibst?
zum zeitpunkt, an dem split diesen string als argument erhält,
enthält er genau einen punkt.
nein, der backslasch davor ist weg. wieso? weil \. innerhalb von
doppelten anfühgungsstrichen nun mal interpoliert wird.
also:
my $name = (split /\./, $filename)[0];
und wenn du eh nur den ersten wert brauchst, wieso sagst du das split()
nicht? split() hat einen parameter LIMIT:
my $name = (split /\./, $filename, 2)[0];
oder:
my ($name) = split /\./, $filename, 2;\n\n

<!--EDIT|pq|1089743304-->
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
pq
 2004-07-13 22:32
#84248 #84248
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=steinwolf,13.07.2004, 20:20]hab ich doch geschrieben, funzt aber nicht!![/quote]
tomlong: (split "\.", $filename)[0]
du : split("\.", $filename)[0]

bitte, programmieren besteht nicht aus rumprobieren.
und wenn dir jemand was antwortet, solltest du dir das im zweifel
erstmal genauer angucken. kein grund für doppelte ausrufezeichen.
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
[E|B]
 2004-07-13 22:44
#84249 #84249
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Alternativ ginge auch:

Code: (dl )
(split(/\./, $string))[0]


Verwende ich recht gerne.

edit: Mist, hab tomlong glatt übersehen.\n\n

<!--EDIT|[E|B]|1089744328-->
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
 2004-07-14 12:15
#84250 #84250
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
oder (split /\./, $string)[0]
oder (split /\./)[0]

Code: (dl )
1
2
3
4
5
6
7
my $string = "eins.zwei.drei";
my $strg = (split /\./, $string)[0];
print $strg, "\n";

$_ = $string;
$strg = (split /\./)[0];
print $strg, "\n";


Ausgabe

Code: (dl )
1
2
eins
eins
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
steinwolf
 2004-07-14 16:05
#84251 #84251
User since
2003-08-04
367 Artikel
BenutzerIn
[default_avatar]
[quote=pq,13.07.2004, 20:32]bitte, programmieren besteht nicht aus rumprobieren.
und wenn dir jemand was antwortet, solltest du dir das im zweifel
erstmal genauer angucken. kein grund für doppelte ausrufezeichen.[/quote]
Hmm, danke für die Hilfe.

@pq
warum glaubst du hast du das recht mir vorzuschreiben, aus was programmieren zu bestehen hat?
"rumprobieren" ist das billigste autodidaktische Hilfsmittel, wo gibt.

*grr*
"Did you know? You can use your old motor oil to fertilize your lawn." - Blinkster - Professionelles EDV Forum
pq
 2004-07-14 16:25
#84252 #84252
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ach herrjeh, ist ja gut, ich schreib dir nix vor.
kannst gerne so weiter machen. sollte eigentlich eher eine hilfe sein.
natürlich probiert man rum. aber zu gegebener zeit sollte man halt doch mal
die dokumentation konsultieren. wenn man was im script hat, was durch
probieren entstanden ist, ohne dass man weiss, wieso es funktioniert,
kann man halt irgendwann eine böse überraschung erleben.
wie gesagt, ich will niemandem was vorschreiben; wer bin ich denn, aber du hast
um rat gefragt, und mein rat ist: lies die doku. ist alles nur gut gemeint.
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-07-14 19:40
#84253 #84253
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
@steinwolf: zeit ist kostbarer als geld, zeit kann man sich nicht kaufen, somit ist rumprobieren die teuerste aller hilfsmittel.
wenn du autodidaktisch lernen willst empfehle ich dir http://www.perldoc.com bzw man perl.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2004-07-13 21:53.