sziasztok!
a Perl könyvben, amiből tanulok, egy érdekes kódot olvastam.
így néz ki, és elvileg ugyanazt kéne csinálnia, mint ennek.
látom én, hogy az utolsó # körül van vmi nem oké, csak hát még normális perl kódot sem nagyon tudok írni, nemhogy ilyen "monsztát" :D, így gőzöm sincs, hogyan lehetne az első kódot mégis működésre bírni.
ha esetleg valaki ír valamit erre, azt előre is megköszönöm :)
- 1220 megtekintés
Hozzászólások
Ha az masodikat akarod for ciklusra atirva:
#!/usr/bin/perl -w
use strict;
print "Please enter a string: ";
chomp(my $string = <STDIN>);
print "Please enter a substring: ";
chomp(my $sub = <STDIN>);
my @places;
for (my $pos = -1; -1 != ($pos = index ($string,$sub,$pos +1)); push (@places, $pos)) {};
print "Locations of '$sub' in '$string' were: @places\n";
De ha elmondod milyen kimenetet kene kapni egy pelda utan az elsore akkor ossze rakhatunk mast is.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
köszönöm, kipróbálom! :)
lényegében csak a számokat szerettem volna kimenetnek, amik megmondják, hol van a stringben a keresett substring.
amit nem értek, és nagyon érdekelne az első kóddal kapcsolatban, az az, hogy miért van ' '-k között az a for ciklus, és hogy mit keresnek ott a #-k, amik nyilvánvalóan nem komment szándékkal kerültek oda.
egyszer csak megtanulok kérdezni...
________________________________________________________
"I do not fear computers. I fear the lack of them."
/ Isaac Asimov /
- A hozzászóláshoz be kell jelentkezni
Mert nagyon el van rontva IMHO
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
:D
mégegyszer köszönöm a segítséget, ez az egysoros nagyon atom :D
________________________________________________________
"I do not fear computers. I fear the lack of them."
/ Isaac Asimov /
- A hozzászóláshoz be kell jelentkezni
http://perldoc.perl.org/functions/eval.html itt lehetne stringben utasitas.
Nehany nagyon fura helyen # lehet a kodnak resze: $#array.
perl -e '@array = (1,2,3); print $#array;'
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
hehh :D
________________________________________________________
"I do not fear computers. I fear the lack of them."
/ Isaac Asimov /
- A hozzászóláshoz be kell jelentkezni
Annyi a problémája, hogy a végén van egy fölös }.
(Ha nem számítjuk a rossz indentálást, a '+'-ok és zárójelek redundáns használatát és a fölösleges 19.,20. sort, ami kvázi ki van kommentezve)
- A hozzászóláshoz be kell jelentkezni
ehm, egen... ez a kód egy harmadikféle, obfuscated megoldása szándékozott lenni ugyanannak az egyszerű problémának, de ezek szerint túl jól sikerült nekik :D
szóval a belső for ciklus le sem fut, mert '' között olyan, mintha akármi szöveget beírtam volna, jól értem...?
________________________________________________________
"I do not fear computers. I fear the lack of them."
/ Isaac Asimov /
- A hozzászóláshoz be kell jelentkezni
for (my $pos = -1; -1 != ($pos = index $string, $sub, $pos+1); push @places, $pos) {
pop @places;
}
lehámoztam róla azt a réteget, ez így már majdnem olyan, mint amit turul16 írt, de mégsem jó egészen, szóval a @places
tartalmát külön 1 print-tel kiíratom és akkor vagyok ugyanott.
________________________________________________________
"I do not fear computers. I fear the lack of them."
/ Isaac Asimov /
- A hozzászóláshoz be kell jelentkezni
most már tényleg értem :D
köszi yals, sör neked is.
remélem, szeretitek :)
________________________________________________________
"I do not fear computers. I fear the lack of them."
/ Isaac Asimov /
- A hozzászóláshoz be kell jelentkezni
Naná;)
- A hozzászóláshoz be kell jelentkezni