lara22: Feldlänge überprüfen und abschneiden, falls es mehr als die Läng

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

  1. 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
    --

    1. 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);
          }

      1. 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.