Quiq
view release on metacpan or search on metacpan
lib/Quiq/Path.pm view on Meta::CPAN
}
else {
if ($this->compareData($tmpFile,$$dataR,$encoding)) {
$ask = 1;
}
}
if ($ask) {
# Rückfrage an Benutzer
my $answ = Quiq::Terminal->askUser(
"Confirm changes?",
-values => 'y/n',
-default => 'y',
);
if ($answ eq 'y') {
# Schreibe die Ãnderungen auf die Datei
if ($file) {
$this->copy($tmpFile,$file);
}
else {
$$dataR = $this->read($tmpFile,-decode=>'utf-8');
}
$changed = 1;
}
}
return $changed;
}
# -----------------------------------------------------------------------------
=head3 detectEncoding() - Liefere das Encoding der Datei
=head4 Synopsis
$encoding = $class->detectEncoding($path,$altEncoding);
=head4 Alias
encoding()
=head4 Description
Analysiere Datei $path hinsichtlich ihres Character-Encodings
und liefere den Encoding-Bezeichner zurück. Unterschieden werden:
=over 2
=item *
ASCII
=item *
UTF-8
=item *
UTF-16/32 mit BOM
=back
und $altEncoding. Ist $altEncoding nicht angegeben, wird
'ISO-8859-1' angenommen.
Anmerkung: Die Datei wird zur Zeichensatz-Analyse vollständig eingelesen.
Bei groÃen Dateien kann dies ineffizient sein.
=cut
# -----------------------------------------------------------------------------
sub detectEncoding {
my $class = shift;
my $path = shift;
my $altEncoding = shift // 'ISO-8859-1';
my $data = $class->read($path);
my $dec = Encode::Guess->guess($data);
if (ref $dec) {
return $dec->name;
}
elsif ($dec =~ /No appropriate encodings found/i) {
return $altEncoding;
}
# Unerwarteter Fehler
$class->throw(
'PATH-00099: Can\'t decode file content',
Path => $path,
Message => $dec,
);
}
{
no warnings 'once';
*encoding = \&detectEncoding;
}
# -----------------------------------------------------------------------------
=head3 link() - Erzeuge (Hard)Link
=head4 Synopsis
$this->link($path,$link);
=head4 Options
=over 4
=item -force => $bool (Default: 0)
Lösche die Datei $link, falls sie bereits existiert.
=back
=head4 Description
( run in 0.580 second using v1.01-cache-2.11-cpan-c966e8aa7e8 )