Furcsa perl regex viselkedés

Hello,

van ez a nem túl komplikált perl szkript: code

A bemeneti fájl szinten elég egyszerű: text

A 27. sorban lévő regex akkor match-el ha:
- Ez az egyedüli regex a while loop-ban
- Mind a 3 regex szerepel a while loop-ban (Sorok: 18, 22, 27)

Abban az esetben ami linkelve van (csak 18. és a 27. sorban levő regex van a while loop-ban) akkor a 27-es sorban levő regex nem fog match-elni. Nekem úgy tűnik, hogy a 18. sorban lévő regex "elrontja" a 27-ben lévőt. Nem igazán értem az okát. Két különböző perl verzióval próbáltam.
Valakinek valami ötlet?

Hozzászólások

Szerintem a reguláris kifejezés végén lévő '/g' okozza. Kipróbálod anélkül?

Itt van egy egész jó leírás a global matchingről:
https://www.safaribooksonline.com/library/view/mastering-perl/978059652…

Részlet: "In scalar context, the /g flag does some extra work we didn’t tell you about earlier. During a successful match, Perl remembers its position in the string, and when I match against that same string again, Perl starts where it left off in that string."

Azt nem tudom, de én a 18. sorban felcserélném a két feltételt. És akkor már legalább indeterminisztikus is lesz a dolog attól függően, hogy mit tartalmaz a generic_on változód :-)

Azt azért megkérdezném, hogy egy skalár változós match esetén mi a franc jelentése van a /g-nek? (Ennyire már nem vagyok benne a perl-ben, hogy ezt fejből tudjam.)

=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?