1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
elsif ($button eq "Eintrag löschen") {
# Dateien mit der entsprechenden ID heraussuchen
my @files;
find sub {my $file="$File::Find::name"; push @files, $file if $file =~ m/\.plog/;}, "$datadir/blog";
chomp @files;
print "FILES: @files \n";
# Aus den Dateinamen eine Liste erstellen
my @items;
foreach my $file (@files) {
# in der ersten Zeite steht der Name/die ID
open my $fh, "<:encoding(utf-8)", "$file";
while (my $line = <$fh>) {
chomp $line;
if ($line eq "%%%ID") {
# erst die zweite Zeile enthält den Namen, die erste wird daher ohne Speichern verworfen
$line = <$fh>;
chomp $line;
print "LINE: $line \n";
# wichtig ist das $ am Ende der Regular Expression, da ja bei
# Namensgleichheit von anderen Beiträgen
# _1 usw. angehängt werden, und diese sonst unbeabsichtigt auch gelöscht würden
#(es geht ja um die url taugliche ID,
# die immer am Ende der Zeile ist!
my $item = body_parameters->get("item");
print "ID: $item \n";
if ( $line =~ /$item$/) {
print "MATCH \n";
push(@items, $file);
last;
}
next;
}
}
close $fh;
}
print "ITEMS: @items \n";
#unlink @items;
redirect uri_for("/admin/blog");
}
1 2 3 4
use Data::Dumper; local $Data::Dumper::Useqq = 1; warn Dumper $line; warn Dumper $item;
2016-04-24T10:02:46 Max_PerlbeginnerPS.: der open mode "<:encoding(utf8)" wurde mir im Forum hier empfohlen... Die Dateien dürften aber ohnehin im utf8 Modus vorliegen, weil sie auch im entsprechenden Mode ">:encoding(utf8)" geschrieben wurden... Aber zur Sicherheit öffne ich sie immer auch mit diesem Modus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
perl -wE'
use Encode;
use Devel::Peek;
my $string = "ä";
Dump $string;
$string = decode_utf8($string);
Dump $string;'
SV = PV(0xbbca90) at 0xbe2878
REFCNT = 1
FLAGS = (PADMY,POK,IsCOW,pPOK)
PV = 0xbe5530 "\303\244"\0
CUR = 2
LEN = 10
COW_REFCNT = 1
SV = PV(0xbbca90) at 0xbe2878
REFCNT = 1
FLAGS = (PADMY,POK,pPOK,UTF8)
PV = 0xbddf80 "\303\244"\0 [UTF8 "\x{e4}"]
CUR = 2
LEN = 10
<h2>Ihre Sucheingabe: [% Suchbegriff | html %]</h2>
1
2
3
4
5
my $htc = HTML::Template::Compiled->new(
filename => 'test.tmpl',
case_sensitive => 1,
default_escape => 'HTML',
);
<%= $test %>
1
2
3
4
5
6
7
8
9
<% FOREACH entry IN entries %>
<section>
<% entry.date %>
<% entry.title %>
<% entry.image %>
<% entry.text %>
<% entry.link %>
</section>
<% END %>
1
2
3
4
5
6
7
#!/usr/bin/env perl
use FindBin;
use lib "$FindBin::Bin/../lib";
use MyApp;
MyApp->dance;
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env perl
use FindBin;
use lib "$FindBin::Bin/../lib";
use Plack::Builder;
use MyApp;
builder {
enable 'Session';
enable 'CSRFBlock';
MyApp->dance;
}