- Okosóra és okoskiegészítő topik
- Az Oppo Find X8 Ultra lett a legvékonyabb kameramobil
- Az Euronics is elkezd használt mobilokkal foglalkozni
- Xiaomi 15 - kicsi telefon nagy energiával
- Keretmentesít a Galaxy S25 FE
- Samsung Galaxy Watch6 Classic - tekerd!
- Samsung Galaxy A52s 5G - jó S-tehetség
- iPhone topik
- Xiaomi 15 Ultra - kamera, telefon
- Hammer 6 LTE - ne butáskodj!
Új hozzászólás Aktív témák
-
moseras
tag
Hello,
my $string = "-1 -2 -3 -ötszáz -1000";
my @hits = ();
my $count = @hits = $string =~ /-\d+/g;
say "count: $count";
if ($count > 0) {
for (my $i = 0; $i < $count; $i++) {
print "hits[$i]: $hits[$i]";
print ', ' if $i != $#hits;
}
}Eredmény:
count: 4
hits[0]: -1, hits[1]: -2, hits[2]: -3, hits[3]: -1000Imi.
-
moseras
tag
Hello,
"$count = () = $string =~ /-\d+/g;"
Ha jól tudom, akkor a "=~" operátor figyeli, hogy mibe rakod az eredményt, ami lehet skalár vagy lista.
Ezzel a trükkel, amit írtál, rákényszeríted a "=~" operátort, hogy lista kontexusban adja vissza az eredményt. Ami azt jelenti, hogy visszad egy tömböt, benne a 0 vagy több egyező résszel. Aztán utána ebből egy mostmár skalár kényszerítéssel kinyered a darabszámot, mert ugye ha tömböt direktbe skalárba teszel, akkor visszakapod a tömb elemeinek a számát.Vigyázz, így nem jó:
$count = ($string =~ /-\d+/g);
Imi.
-
moseras
tag
Üdv!
Nekem működik mindkettő. Így is, ahogy beidézted, és úgy is, ha megfordítom a két lekérést.
Környezet:
This is perl 5, version 20, subversion 2 (v5.20.2) built for MSWin32-x86-multi-thread-64int
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2015, Larry Wall
Binary build 2002 [299195] provided by ActiveState http://www.ActiveState.com
Built Jul 20 2015 13:29:53Imi.
-
fpeter84
senior tag
Sziasztok!
Ugyan kissé inaktív a topik, de azért hátha előkerül valaki aki tud segíteni, hogy miért nem működik a következő kód minden https lekérésnél:
#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);
use LWP::UserAgent;
use open qw(:std :utf8);
my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 } );
$ua->agent('Mozilla/5.0');
my $crypt = $ua->get("https://min-api.cryptocompare.com/data/generateAvg?fsym=ETH&tsym=USD&markets=Poloniex");
print "\n>>> ".$crypt->decoded_content." <<<\n";
my $pool = $ua->get("https://ethermine.org/api/miner_new/33babc6cd1a6c0aee80622cc742f3e2d24463397");
print "\n>>> ".$pool->decoded_content." <<<\n";Az első címet sikeresen lekérdezi és kiírja a tartalmát, a másodikra viszont ezt dobja:
Can't connect to ethermine.org:443
LWP::Protocol::https::Socket: SSL connect attempt failed with unknown errorerror:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error at C:/Strawberry/perl/site/lib/LWP/Protocol/http.pm line 51.Tudnátok segíteni hogy hogyan kellene kapcsolódnom ahhoz hogy a másodikat is le tudjam kérdezni? Böngészőből megnyitva természetesen él az oldal...
-
Mijo
tag
Szia!
A suttyó megoldást alább láthatod:my ($acknowledge, $error_number, $error_text);
my %net_ucp_config = (
SMSC_HOST => '111.111.111.111',
SMSC_PORT => 2222,
SENDER_TEXT => '+36111111111',
WARN => 1,
FAKE => 0
);
$emi = Net::UCP->new( %net_ucp_config )
|| Net::UCP->new( %net_ucp_config )
|| Net::UCP->new( %net_ucp_config )
|| die( "Failed to create SMSC object ".$! );
$emi->open_link() || die($!);Ha általánosan kell ez az ismétlés, lehet valami ilyennel próbálkozni:
sub retry_net_ucp {
my $obj = shift;
my $method = shift;
$obj->$method( @_ )
|| $obj->$method( @_ )
|| $obj->$method( @_ )
|| die "Error during $method on $object :".$!;
}Üdv: Mijo
-
jeszi
tag
Sziasztok!
Hogy lehetne átírni a lenti kódot úgy, hogy ha die ágra fut, akkor még 2x próbálja meg létrehozni a kapcsolatot.
Néha előfordul, hogy ez az üzenet keletkezik:
Failed to establish a socket connection with host 111.111.111.111 on port 2222my ($acknowledge, $error_number, $error_text);
$emi = Net::UCP->new(SMSC_HOST => '111.111.111.111',
SMSC_PORT => 2222,
SENDER_TEXT => '+36111111111',
WARN => 1,
FAKE => 0
) or die("Failed to create SMSC object");
$emi->open_link() or die($!); -
Mijo
tag
Hiányolja a modult a két felsorolt útvonalból (@INC tartalma).
Nézzük meg, van-e ilyen fájl egyáltalán a rendszeren!
find / -name 'ReadLine.pm' 2>/dev/nullHogyan telepítetted a Perlt?
Elvileg ilyen hibának nem lenne szabad megjelenni a CPAN modul használatakor, mert vagy az alap Perlhez adott modulokat használja, vagy van fall back módszere.Mi a végső cél, amihez a Perl kell?
Ennyire nem bonyolult a Perl telepítése, lásd Perlbrew.
Ha csak frissebb Perlt szeretnél, próbáld meg ezzel, bár egy routeren lehet nem lesz elég hely hozzá, de lehet van külső tárhelyed. Így a rendszer Perl érintetlen maradhat.Üdv: Mijo
-
Honkydoo
őstag
Köszönöm a választ!
Újratelepítettem a perlt, most másra panaszkodik:
Can't locate Term/ReadLine.pm in @INC (@INC contains: /usr/lib/perl5/5.10 /root) at /usr/lib/perl5/5.10/CPAN.pm line 162.A rendszer amúgy openwrt, fordítani egyelőre nem igazán tudok rajta... Pedig virtuális gépen fut.
-
Mijo
tag
Szia!
Ez a bug 2-3 éves. Nem lett kijavítva valami frissebb verzióban?
Van arra lehetőség, hogy CPAN-ról letöltöd a tar.gz-t, és kézzel cseréled ki, aztán ráfrissítesz a Perl modulokra, hogy minden up to date legyen?Egyébként keress ezekre a sorokra:
sub my_dflt_prompt
sub my_yn_prompt
sub my_prompt_loopLesz ezekben a függvényekben "prompt" függvényhívás, azok elé kell várhatóan betenni ezt:
$prompts{$item} = "<missing prompt> $item";
Persze ha egy rendes diff-et tett volna be, sokkal egyszerűbb lenne...
Üdv: Mijo -
Honkydoo
őstag
Üdv,
Adott ez a bug.
Ki akarom javítani, csak azt nem értem, hogy hogy kell..
A ~1470 körül ki kell kommentezni a szöveget, azt értem.
CPAN:: FirstTime-ba kell beilleszteni egy sort, az oké, de a "<missing prompt> $item"; nem tudom, hogy milyen promptokat takar..Valakinek van ötlete?
-
Mijo
tag
Szia!
Javaslom a non capturing groupot: (?:pattern)
Üdv: Mijo
#!/usr/bin/perl
use strict;
use warnings;
my @tests = (
'#0546NNN124:CH/FT0/FM2 RS ok',
'#0546NNN124:CH/FT2 RS ok',
);
for my $test ( @tests ) {
if ( $test =~ m!^
(\#0546NNN124:CH/FT\d+
(?:/FM\d+)?
)
\s+
RS
\s+
(\S+)
\s*
$!ix
) {
print "Match: code=[".$1."] status=[".$2."]\n";
} else {
print "No match: [". $test ."]\n";
}
}./test.pl
Match: code=[0546NNN124:CH/FT0/FM2] status=[ok]
Match: code=[0546NNN124:CH/FT2] status=[ok] -
Cyno
tag
Sziasztok!
Tudnátok segíteni, hogy az alábbi 2 sort megegye a scriptem?
Az első még ok, de nem tudok rájönni, hogy a második sort, hogy fogadtassam el vele. Már próbáltam a vagyot, minden karaktert, de semmi.
Az elegáns megoldás az lenne, hogy a /FM2-el is menjen, de akkor se akadjon ki, ha a /FM2 hiányzik.#0546NNN124:CH/FT0/FM2 RS ok
#0546NNN124:CH/FT2 RS ok
if ( m!^(0546NNN124:CH/FT\d+/FM\d+) \s+ RS \s+ (\S+) \s*$!ix ) -
shinodas
tag
Sziasztok!
Kubuntu 12.04 szeretnék Perl Tk-ban ismerkedni, aztán van egy egyszerű teszt programom, és ugye a következő hibát kapom:
couldn't connect to display ":0" at /usr/lib/perl5/Tk/MainWindow.pm line 55.
Tk::MainWindow->new() at tk_proba.pl line 5.Nem találtam megoldást rá, ami működött volna.
-
Peter789
senior tag
sziasztok!
hátha még valaki téved errefelé...
valahogyan lehetséges a device::serialport-al vagy bármi mással perl alatt 9 bites csomagokat fogadni? a küldés nem is érdekes, csak a fogadás... adott egy speciális protokol, ahol a 8 bites adatcsomagokat mindig követi egy 9dik bit aminek szintnén van jelentősége - ez mondja meg hogy mikor kezdődik új parancs. lehet valahogy kezelni ezt az utolsó bitet? a databits csak 5,6,7,8 lehet - 9-nél ki is akad. esetleg valahogyan lehet a paritással bűvészkedni? aktiválni a paritás fogadását de ignorálni hogy hibás e a byte szerinte, viszont használni egyéb célra azt a bitet?
-
Mijo
tag
Szia!
Ha ilyen bonyolult az adatok kinyerése, talán inkább előbb írjad ki egy fájlba, majd a Tie:
ile modullal nyisd meg a fájlt, és rendezd a fenti módszerrel. Lehet egy kis tesztelést igényel, hogy mekkora cache-t kapjon a modul, hogy a jellemzően előforduló fájlmérettel gyorsan megbírkózzon, és ne kelljen a vinyóra pakolni folyamatosan.
Amit még tehetsz, hogy egyből Tie:ile-ba pakolod az adatokat, majd a végén rendezel újabb megnyitás nélkül.
Üdv: Mijo
-
Dumas
csendes tag
Köszi szépen, ez alapján megpróbálkozok vele
, de igen, kicsit pontatlan voltam a leírásnál. Mert ráadásul az adatokat is máshonnan nyerem ki
Write_log("script started");
$mappres=MappNetSrc($netpath);
Write_log("mapping $netpath");
if($mappres==1)
{
my $name_date= get_timestamp4();
if(!(-d $netpath))
{
Write_log("mapping source error $_[0]");
}
else
{
Write_log("mapping source $_[0] is mapped succesfully");
if((opendir SO, $sourcedir) ==1)
{
Write_log("$sourcedir has been opened");
$today = get_timestamp3();
open out, ">", $lstfiledir.$name_date.'_'.$cell.'.lst' or die $!;
print out "Barkod;Ido\n";
while ($file = readdir(SO))
{
if ($file ne "." and $file ne "..")
{
$fidate=get_creation_time($sourcedir."\\$file");
if ($fidate gt get_timestamp())
{
Write_log("$sourcedir"."\\$file"." creation time is:".$fidate);
open input, "<","$sourcedir"."\\$file" or die $!;
#my $lines = <input>;
while (<input>)
{
#print $_;
$date_from_file =substr($_,0,10);
#print $today.'-'.$date_from_file.'';
if ($today eq $date_from_file)
{
#print $_;
my $out_date =substr($_,11,8);
my $out_ttnr =substr($_,24,6);
print out $out_date .';'.$out_ttnr."\n";Itt a végén jön ki ugye a $out_date-nél a kimeneti dátum, a $out_ttnr, pedig a száma.
Jelenleg úgy gondoltam, hogy beviszem külön azt a részt amit most csak printelek a végén. És azt "sort"olom. ha az úgy megoldás lehet. -
Mijo
tag
Szia!
Milyen struktúrában található az adatod?Tömb esetén mondjuk legyen ilyen:
$data = [
[ 'A', '2012.08.24. 10:00' ],
[ 'B', '2012.08.24. 08:00' ],
[ 'C', '2012.08.24. 12:00' ],
];Ezután szépen átalakítjuk:
my @sorted = sort { $a->[1] cmp $b->[1] } @$data;
Ez alap esetben szövegeket hasonlít össze, ha nem ilyen szép az időformátumod akkor érdemes egy függvényhívással ilyenre alakítani, ami a fenti linken a map { } @data rész lenne.
my @sorted = map { $_->[1] } # visszavesszük az eredeti rekordot
sort { $a->[0] cmp $b->[0] } # rendezünk timstamp szerint
map { [ make_timestamp( $_->[1] ), $_ ] } # elkészítjük a [ timestamp, [eredeti rekord] ] struktúrát
@$data; # bemenetRemélem ennek segítségével sikerül megoldani, de kérdezz bátran, ha elakadasz!
Üdv: Mijo -
Dumas
csendes tag
Sziasztok!
Egy olyan problémám lenne, hogy per-lben kilistázok pár dolgot egy fájlba. Termék kódját és a termék elkészülésének dátumát. Jelenleg a termék kódja szerint rakja sorba őket. Őszinte leszek, nem igazán értek a perl-hez. A kérdésem az lenne, hogy, hogy tudnám megoldani, hogy dátum szerint rakja sorba a termékeket?
Tehát most úgy van, hogy mondjuk A-termék: 10:00 B-termék: 8:00 C-termék: 12:00.
Helyette kéne úgy, hogy: B-termék: 8:00 A-termék:10:00 C-termék:12:00.Előre is köszönöm a választ annak aki esetleg tud segíteni benne
-
Mijo
tag
Kezdetnek ezt a cikket, cikksorozatot megnézhetnéd, elég jól magyarázza az alapokat.
http://prog.hu/cikkek/443/Mintaillesztesek.htmlHa biztos vagy abban, hogy tab szeparált a sorod, ezt is használhatod:
$orszagnev = "USA Amerikai Csendes-óceáni szigetek 581 UMI UM ISO 3166-2:U";
chomp( $orszagnev );
@rekordok = split( /\t/, $orszagnev );
print "$rekordok[0]\n";Üdv: Mijo
-
Osiris
őstag
Ez lett a megoldás:
$orszagnev = "USA Amerikai Csendes-óceáni szigetek 581 UMI UM ISO 3166-2:U";
chomp ($orszagnev);
$poz = index($orszagnev, "\t");
$orszagnev = substr($orszagnev, 0, $poz-1);
print "$orszagnev\n"A kimenet:
USA Amerikai Csendes-óceáni szigetek
Ui.: a tabulátor szivatott, space-nek hittem.
@ Mijo:
Van itt előttem egy ~750 oldalas könyv, de valami összeszedettebb dolog kellene, majd megnézem amit linkeltél.
Thx! -
Mijo
tag
Azok a reguláris kifejezésből kapják az értéket, a ( és ) közötti részeket veszik fel.
$str = 'abcdef';
$str =~ m/(...)(...)/;
print $1; # 'abc'
print $2; # 'def'Amit linkeltem doksi oldal szépen leírja az összes lehetőséget. Ha magyarul szeretnéd inkább és nem ilyen mélységekben, ezt nézd meg:
http://nyelvek.inf.elte.hu/leirasok/Perl/Üdv: Mijo
-
Mijo
tag
Szia!
Ha a számok kellenek, akkor ezt a reguláris kifejezést tudom javasolni:
$sor =~ m/^[^\d]*(\d{3})/;
$szam = $1;Ha a tényleg a pozíció érdekel:
$sor =~ m/^([^\d]*)\d{3}/;
$poz = length( $1 );És ezt lehet kombinálni is.
$sor =~ m/^([^\d]*)(\d{3})/;
$poz = length( $1 );
$szam = $2;Ajánlott olvasmány, ha Perlben sztringeket kell szabni-varrni:
http://perldoc.perl.org/perlre.htmlÜdv: Mijo
-
Osiris
őstag
Szasztok!
Van egy $sor változóban egy karakterláncom:
$sor = "Németország 276 DEU DE ISO 3166-2:DE"
Hogy tudom a $sor változó első 3db egymást követő számjegysorozatának az első indexét kideríteni?
Így szerettem volna, de nem jó:
$pos = (index ($sor, /\d\d\d/));
-
Mijo
tag
Szia!
Első tanács, használj objektumokat, pl. ezt:
http://search.cpan.org/~cook/Device-SerialPort-1.002/SerialPort.pm
Gondolom van még számos a CPAN-on, ami a soros portot kezeli.A getc leírása szerint, ez a függvény nem alkalmas a karakterenkénti olvasásra, mert entert vár hozzá, ahogy írtad is.
Meg lehetne próbálni a különböző olvasó függvényeket: sysread, read,...létezik karakter típusú változó, amivel mindig továbbmenne ?
Konkrétan karakter típus nincs. Skalár van, ami tárolhat egy vagy több karaktert (stringet), egész vagy tört számot (integer, float, ...), meg egyebeket (objektumok, referenciák,...), de ezek között nincs éles határ, mint C-ben.
A kérdésed abból a szempontból rossz, hogy nem a változóddal mondod meg a függvénynek, hogy mikor és mivel térjen vissza.Üdv: Mijo
-
Peter789
senior tag
Sziasztok!
az alábbi kis linuxos perl kód módosítására szeretnék segítséget kérni:
#!/usr/bin/perl
$file = '/dev/ttyS1';
open(SER, $file);
while (TRUE)
{
$input = getc(SER);
print $input;
}
close(SER);ez szép és jó, de csak soronként hajlandó fogadni a bejövő karakterláncokat - mindig vár egy ASC10 vagy 13-ast, akkor lép csak tovább a print-re
létezik karakter típusú változó, amivel mindig továbbmenne ? vagy van rá valami más megoldás ?
előre is köszönöm a válaszokat,
Péter -
alapz@j
tag
Félofftopic, de megjelent a Perl 5.14, benne teljes Unicode 6 támogatással, gyorsabb futás mellett kevesebb memórifogyasztással és sok más okossággal. Részletesebben pl. itt:
[link] -
Mijo
tag
Gondolom már nem aktuális, de jól esett kitalálni a megoldást:
#!/usr/bin/perl
use strict;
my @input = (
'1.+Béla',
'Örök+Eutanázia+Roberta',
'Kiss+Miska+András',
'Aaa+Aaa',
);
sub def_k {
shift =~ m/\+([^+]+)/;
return $1 || "";
}
my @output =
#map { $_->{'o'}}
sort { $a->{'k'} cmp $b->{'k'} }
map +{ 'o'=>$_, 'k'=> def_k($_) }, @input;
foreach my $o (@output) {
#print join( "\n", @output );
print $o->{'k'}.' -- '.$o->{'o'}."\n";
}Az alkalmazott ötlet a http://en.wikipedia.org/wiki/Schwartzian_transform. A két kommentelt sor a teszteléshez van, élesben az első map veszi ki az eredeti stringeket a hashekből.
Remélem valakinek még hasznos lesz!
Üdv: Mijo -
Osiris
őstag
Sziasztok!
Van egy @array tömböm, aminek az elemei karakterláncok -> nevek: vezetéknév+keresztnév+harmadiknév+és így tovább. Ezt a tömböt szeretném rendezni keresztnév szerint, vagyis a az első szóköz utáni listalem szerint.
Mi erre a megoldás? -
alapz@j
tag
Lehet hogy rosszul értem, de arra vagy kíváncsi, hogy hogyan lehet Perl programból shell utasításokat kiadni? Mert erre vannak a system(parancs) és az exec(parancs) utasítások, a system bevárja az eredményt, az exec pedig csak végrehajt. Ha az eredménye is kell a folyamatnak, akkor backtick:
exec(PROGRAM);
$sikerultvagynem = system(PROGRAM);
$kimenet = `PROGRAM`; -
buherton
őstag
Nem tegnap volt az utolsó hsz, de hát ha ide téved valaki.
Kérdésem: hogyan lehet shell szkriptet programozni perlben? Gondolok itt az install-tól, az ls-ig.
-
!wannabe
tag
Szia,
Köszi a megoldást, persze ez mindig aktuális
-
!wannabe
tag
# na élesszük fel
Sziasztok!
Írnék egy scriptet amely egy beolvasott listából (amelyben szerepel vezeteknev, keresztnev) kislistázni azokat amelyeknek a keresztneve paratlan hosszusagu. A megszokott ($_%2) stringekre nem működik csak számokra ha jól sejtem. Hogyan lehetne megvizsgálni, hogy egy string páros vagy páratlan hosszusagú-e?
Előre is köszi a válaszokat.
-
furu818
csendes tag
Hali!
Nem tudja valaki véletlenül, hogy egy helyi hálózatban lévő géphez hogyan tudok hozzáférni? Csak a könyvtár struktúráját akarnám bejárni, és pár dolgot kimásolni.
A gép a hálózaton simán "\\gepnev\akarmi" formában érhető el és tartozik hozzá külön jelszó és felhasználónév.
Ha esetleg valaki tudja, hogy hogyan kell elérni sima open függvénnyel, vagy valamilyen modullal az kérem írjon!Köszi
-
piadex2
senior tag
Sziaszok!
Ha van egy kódom, ami megkeresi az összes w-vel és nagy w-vel kezdődő szót, akkor hogyan kell módosítani ezt a programot ahhoz, hogy a megtalált szavakat kiírja a képernyőre?
Előre is kösz a választ:piadex2
-
piadex2
senior tag
Hello megint!
Van egy file-om: file, amit hiába próbálok a HTML Parserrel feldolgoztatni pl úgy, hogy a HTML kódot egy másik file-ba másoltatom, mindössze egy üres file-t kapok végeredményül. Mit csinálok rosszul? (ha egyszerűbb html file-lal próbálkozom, akkor nincs gond)
Előre is kösz a segítséget.piadex2
vipisti: amúgy átnéztem (úgy ahogy) a reguláris kifejezéseket, a file műveleteket, meg még néhány alapot - elméletileg elégnek kell lennie ezeknek
-
piadex2
senior tag
Hello!
Kösz a segítséget!
Máshol azt ajánlották, hogy a perlben HTML parser-t használjak, mert különben nagyon elbonyolodok - mivel ez a válasz előbb jött ezt az utat kezdtem el bejárni.
Most viszont egy olyan kérdésem lenne, hogy az alábbi kód:
my ($one, $two) = 2;print "$one plus $two\n";
print "$two\n";miért nem azt adja ki, hogy:
2 plus 2
2
miért azt, hogy:
2 plus-----vége------
Igazából az egyszerre történő értékadást próbáltam tesztelni, és ezért állok értetlenül az eredmény előtt.
Előre is kösz a segítséget!piadex2
-
vipisti
tag
-
vipisti
tag
open(READER,"index.html");
@contents = <READER>;
close READER;
$contents = join '', @contents;
while ($contents =~ /\>([^<>]+)\</g)
{
print "$1\n";
}Kiindulásnak használd a fentit. A kód tényleg csak a ><-ök közti szövegeket nézi így, de ne felejtsd el, h a html tagok egymásba ágyazhatók (ezért lesznek ennek az outputjában üres sorok, pl. </div></div> miatt).
-
piadex2
senior tag
Hello!
Először is kösz a segítséget.
Másodszor: pedig lenne egy olyan problémám, hogy a html kódból szeretném kiszedni a szöveget. Azt a részt, ami így : ...> szöveg szöveg ... szöveg <... található meg - vagyis kifordított kacsacsőrök között van.
Én már írtam rá kódot:
open(READER,"szoveg.htm");while( $line = <READER> ){
if ($line =~ /\>([^<>]+)\</g){
$gyujtes = $line;
}print "$gyujtes\n";
}close READER;
$input=<STDIN>;de nem úgy működik - nem tudom miért -, ahogy kellene.
Segítség ill. előre is kösz a segítséget.piadex2
-
piadex2
senior tag
Hello!
A kódot köszönöm, ment vele kapcsolatban kérdés privátban.
Újabb kérdés támadt:
van egy szöveg, amiben a "hide" szó többször előfordul. Hogyan lehet olyat csinálni, hogy megkeresem a hide szót, és - mivel ez egy html kód - megkeresem a hide szó előfordulása közvetlen előtti kacsacsőr mentes részt?
kacsacsőr mentes rész: nem kezdődik kacsacsőr és nem is végződik, pusztán a szöveg látható
Előre is kösz a segítséget.piadex2
-
piadex2
senior tag
Sziasztok!
Hogyan lehet megoldani, hogy a program kiírja, hogy hányszor szerepel a Horch a szövegben. Van olyan is, hogy egy sorban többször is szerepel a Horch.
Előre is kösz.piadex2
-
piadex2
senior tag
open(READ,"<audi.txt");
$counter = 0;
while( $line = <READ> ){
if($line =~ m/Horch/)
{
# {print "found Horch";
$counter++;
}else{
# print "there's no Horch\n";
}
}#while
if ($counter > 0)
{print "found Horch $counter time(s)";
}else{
print "there's no Horch\n";
}close READ;
$_ = <STDIN>;Ez a kód egy többsoros szövegben, amiben többször szerepel az, hogy Horch miért csak egyszer veszi észre?
Előre is kösz a segítséget.piadex2
-
nukewar
tag
-
nukewar
tag
Látom kihalt a topic...
Akkor egy kérdés:
Hogyan kezelem a perl paraméterét?
pl.:perl akármi.sh paraméter
Itt a paramétert akarom használni változó értékeként a programban.
A bash féle $1 úgy látom nem működik.
Tippek? -
Lortech
addikt
pl:
A hívó:
$ cat elso.pl
use elso;
my $log_base = $elso::e;
print ''Log base: $log_base\n'';
my $radius = 10;
my $area =
elso::circle_area($radius);
print ''Area = $area\n'';
A modul :
$ cat elso.pm
use strict;
package elso;
our ($pi, $e);
$pi = 3.14159;
$e = 2.7182818;
sub circle_area
{
my $radius = shift;
return ($pi * $radius * $radius);
}
1;
A kimenet:
Log base: 2.7182818
Area = 314.159
elso.pl -t kell futtatni ezekután (perl elso.pl).
A példát innen ([link]
) loptam, Itt találsz egy használható leírást packagekről modulokról és a my, our jelentéséről.
Megmondom őszintén ISA-ról sokminden eszembe jutott, de perl kontextusban semmi.Nem használtam még, nem tudom, mire jó.
-
tildy
nagyúr
Szeretnek egy programot írni, ami függvényeket hív meg.
A függvények legyenek mondjuk a Teszt.pm-ben, itt legyen mondjuk 3 fv. (lenyegtelen mit csinal jelen esetben)
Legyen egy teszt.pl , amelyben meghívjuk a Teszt.pm némely függvényét.
A kérdés: miknek kell lennie a Teszt.pmben, azon kívűl, hogy a függvényeknek?
Mi az az ISA?
Miket kell még beleírni a pm-be?
Perpill ennyi. -
-
tildy
nagyúr
Ennyire senki?
PAckage készítésben segítség valaki? -
tildy
nagyúr
Sziasztok!
Úgy láttam PERLlel kapcsolatos topic még nincs, gondoltam nyitok egyet.
de hogy ne csak úgy lógjona levegőben a dolog, rögtön lenne egy kérdésem is.
Asszociativ tomb esetén (hash) miért kell idézőjelek közé rakni az értékeket?
Új hozzászólás Aktív témák
Hirdetés
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Asus ROG Flow Z13 + ROG XG RTX 3070 - i9 12900H 16GB DDR5 RAM 1TB SSD + RTX 3070 8GB WIN
- Azonnali készpénzes Sony Playstation 5 lemezes és digitális felvásárlás személyesen/csomagküldéssel
- Eladó Apple iPhone Xr 64GB fekete / ÚJ KIJELZŐ / 100% AKKU / 12 hónap jótállással!
- 134 - Lenovo Legion Pro 7 (16IRX8H) - Intel Core i9-13900HX, RTX 4090
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged