Jörk Behrends: fixe Stringlänge in PERL

Beitrag lesen

Hallo auch ...

Hi,

sub Mach8
{
»»  $String = $_[0];
»»  if(length($String) > 8) {
   $String = substr($String,0,7);

müßte das nicht ",0,8" sein? Naja, ein kurzer Test und... :-)

»»  }
»»  elsif(length($String) < 8) {

for($i = length($String); $i < 8; $i++) {
      $String = $String." ";
   }

oder:
while(length($String) < 8) { $String .= " "; }  # bzw. $String = " ".$String; wenn die Leerzeichen links stehen sollen

Um die Routine an beliebige Längen anzupassen, mußt Du nur jede 8 durch "$_[1]" ersetzen bzw. die 7, wenn sie stimmt, durch "$_[1]-1". Es empfiehlt sich in dem Fall natürlich, die Routine "sub Mach" zu nennen. Der Aufruf erfolgt dann mit $Test = Mach("Das ist der Text",42); für Justierung auf 42 Zeichen.

Cheatah

wie wäre es denn mit:

sub Mach
{
    substr( $_[0] . ' 'x$_[1], 0, $_[1]);
}

;-)
Gruß,
   Jörk