Feldlänge überprüfen und abschneiden, falls es mehr als die Läng
lara22
- perl
Hallo zusammen,
ich prüfe den Inhalt eine Feldes mit der Feldlänge, falls es weniger als die Länge soll es vorne mit A befüllt werden.
("%A " . $Laenge. "s",$array[$feld] )
Falls der Inhalt, mehr als die Länge ist möchte ich die letzten Elemente abschneiden. Hat jemand eine Idee?
LG
hi,
Falls der Inhalt, mehr als die Länge ist möchte ich die letzten Elemente abschneiden. Hat jemand eine Idee?
Na klar ;)
Falls Du das mit substr()
machst, stelle sicher, dass Du an dieser Stelle Dein Perl von Bytesemantic auf Charactersemantic schaltest, ansonsten kann es passieren, dass zusammengehörige Bytes (Multibyte-Codierung, z.B. UTF-8) auseinandergerissen und das entsprechende Zeichen nicht korrekt dargestellt werden kann.
Also nicht mit Oktetten operieren sondern mit Zeichenketten, Perl unterscheidet das seit 2001 mit Version 5.6.1
# seit Version 5.8 im Core
use Encode; # vermittelt zwischen Oktetten und Strings
MfG
--
Ja ich versuche es mit substr aber irgendwie funzt es nicht: Ich möchte nur die davon möchte ich string in nem array überprüfen .
Zum Postion 1 hat die länge 35, aber es sind 38 also möchte ich die 3 buchstaben entfern
if ($type eq 'String' && @array[$inhaltpostion] >$Laenge){
print substr(@array[$inhaltposition], 0,$Laenge);
}
Schalte strict und warnings ein, dann siehst Du Deine Fehler gleich und schau Dir mal an, wie über den Index auf einzelne Array-Elemente zugegriffen wird.