Thread StringCompare Problem (4 answers)
Opened by PROXEN at 2014-03-05 22:31

topeg
 2014-03-06 00:00
#173862 #173862
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
\e]0;bw\@localhost:~\a
Das ist eine Terminal-Kontrollsequenz.
Kontrollsequenzen, dienen dazu in Terminals die Farbe von Zeichen oder dem Hintergrund zu setzen, eine Schriftart zu Selektieren, oder den Cursor zu positionieren.
Am bekanntesten und am meisten Implementiert ist "VT100" Der Name bezeichnet ein Computer aus den 1980ger Jahren. Dieser implementierte als erster diese Form der Escape-Sequenzen.
Nun kann ein Terminal heute mehr als damals und es wurden weitere Sequenzen implementiert (ANSI hat eine Reihe dieser Sequenzen Standardisiert). Die von dir gezeigte soll den Titel des Fensters setzen in dem die Terminalemulation läuft. Die Entwickler von XTERM Haben das als erste Implementiert. Viele andere Entwickler haben es übernommen. Die Sequenz oben sagt Speziell: Setze den Titel des Terminalfensters auf bw@localhost:~ und gebe einen Ton aus. \a ist ein ASCII Steuerzeichen und bewirkt die Ausgabe eines Tones.

Was die RegExp betrifft. Versuche mal:$c =~ /\[(.*)\@(.*)\s+~\]\$/ Das sollte finden wonach du suchst. Versuch immer nur soviel zu definieren, das der Match gerade eben so übereinstimmt. Schreibst du zu viel in die RegExp kann es sein, das sie zwischendurch einfach nichts findet, weil sich eine Kleinigkeit ändert.

Du kannst eine Teminalemulation wie CPAN:Term::VT102 benutzen um die Steuersequenzen zu Parsen und zu interpretieren.

View full thread StringCompare Problem