Quiq
view release on metacpan or search on metacpan
lib/Quiq/String.pm view on Meta::CPAN
Ein String, typischerweise mehrzeilig.
=back
=head4 Returns
Länge der längsten Zeile (Integer)
=head4 Description
Ermittele die Länge der längsten Zeile und liefere diese zurück. Newline
wird nicht mitgezählt.
=cut
# -----------------------------------------------------------------------------
sub maxLineLength {
my ($class,$text) = @_;
my $maxLen = 0;
for (split /\n/,$text) {
chomp;
my $l = length;
if ($l > $maxLen) {
$maxLen = $l;
}
}
return $maxLen;
}
# -----------------------------------------------------------------------------
=head2 Encoding
=head3 autoDecode() - Auto-dekodiere Zeichenkette
=head4 Synopsis
$str = $class->autoDecode($str);
$str = $class->autoDecode($str,$otherEncoding);
=head4 Description
Analysiere Zeichenkette $str hinsichtlich ihres Character-Encodings
und dekodiere sie entsprechend. Unterschieden werden:
=over 2
=item *
ASCII
=item *
UTF-8
=item *
UTF-16/32 mit BOM
=back
und $otherEncoding. Ist $otherEncoding nicht angegeben, wird
ISO-8859-1 angenommen.
=cut
# -----------------------------------------------------------------------------
sub autoDecode {
my $class = shift;
my $str = shift;
my $otherEncoding = shift || 'iso-8859-1';
# Encoding ermitteln und Text dekodieren
# $Encode::Guess::NoUTFAutoGuess = 1;
my $dec = Encode::Guess->guess($str);
if (ref $dec) {
# Wir dekodieren Unicode
$str = $dec->decode($str);
}
elsif ($dec =~ /No appropriate encodings found/i) {
# Wir dekodieren $otherEncoding
$str = Encode::decode($otherEncoding,$str);
}
else {
# Unerwarteter Fehler
$class->throw(
'PATH-00099: Zeichen-Dekodierung fehlgeschlagen',
Message => $dec,
);
}
return $str;
}
# -----------------------------------------------------------------------------
=head2 Einrückung
=head3 indent() - Rücke Text ein
=head4 Synopsis
$str2 = $class->indent($str,$indentStr,@opt);
$class->indent(\$str,$indentStr,@opt);
=head4 Options
=over 4
=item -indentBlankLines => $bool (Default: 0)
Rücke auch Leerzeilen ein. Per Default werden nur Zeilen mit
wenigstens einem Zeichen eingerückt.
Diese Option ist nützlich, wenn die Funktion zum Auskommentieren
genutzt werden soll.
( run in 0.927 second using v1.01-cache-2.11-cpan-5b529ec07f3 )