Thread mein script verweigert ignore_case in utf-8 pattern matching (23 answers)
Opened by technix at 2013-06-02 16:19

technix
 2013-06-04 12:57
#167966 #167966
User since
2013-06-02
10 Artikel
BenutzerIn
[default_avatar]
Herzlichen Dank an pq und an Euch alle. Fürs Erste arbeitet das Suchmodul meines Webshops nun wie es soll. Natürlich hätte es einen gewaltigen Modernisierungsbedarf :-).
Tja, und danke für die Hinweise auf neuen Lesestoff. Man kann nie genug perl-Literatur brauchen...

Ich hatte das vor ca. 10 Jahren geschrieben und damals zählten für mich so Werte wie Sparsamkeit beim Speicherbedarf und möglichst große Autonomie des Scripts, die heute niemanden mehr kratzen.

m/\Q$bez\E/i hatte ich durch Substitution aller nicht erlaubten Zeichen realisiert, \Q...\E ist/war mir neu.

Im Endeffekt habe ich Folgendes gebraucht und bei Euch letztendlich deutlich besser erklärt bekommen, als in anderen perl-Quellen.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use utf-8;
# zwingend erforderlich, in utf-8 zu scripten allein 
# ist zuwenig.

use Encode qw(encode decode); $enc = 'utf-8';
$in{'suchmich'} = decode($enc, $in{'suchmich'});
#
# decodieren aller relevanten von 'außen' übergebenen
# Variablen, da perl intern utf-8 leider nicht versteht

open my $fh, "<:encoding(UTF-8)", $infile
#
# einlesen externer Textdaten als utf-8, auch wenn diese
# schon utf-8 sind

# und vor der ersten Ausgabe in Dateien oder als HTML
binmode STDOUT, ':encoding(UTF-8)';

Ich hoffe, ich werd hier auch mal eine Gelegenheit finden, die eine oder andere Lösung einzuwerfen.
Last edited: 2013-06-04 13:00:03 +0200 (CEST)

View full thread mein script verweigert ignore_case in utf-8 pattern matching