6 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use strict;
use warnings;
my @isbns = ('0-596-10092-2','3-97003-615-X');
@isbns = map{$_ =~ s/-//g;$_}@isbns;
my $check = '0092';
my @treffer = grep{index($_,$check) == 5}@isbns;
print $_,"\n" for @treffer;
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
#!/usr/bin/perl
use strict;
use warnings;
# Diverse ISBN-13 ("Bookland"-EAN-Format)
my @isbns = qw/
978-1-56592-243-3
978-0-596-00173-5
978-3-8273-1812-1
978-3-89721-109-4
978-3-8272-6153-3
978-3-89721-142-1
/;
# Dies wird ein Hash of Arrays mit den ISBNs nach Verlag
my %isbns_by_publisher;
for my $isbn (@isbns) {
# Kopiere ISBN und loesche in der Kopie alles, was keine Ziffer ist
(my $clean_isbn = $isbn) =~ tr/0-9//cd;
# Check auf korrekte Laenge
if (length $clean_isbn != 13) {
warn "not a valid ISBN-13: $isbn\n";
next;
} else {
# ISBN dem zugehoerigen Array im Hash hinzufuegen.
# Schluessel ist der Code des entsprechenden Verlags,
# Verlag ist in den Ziffern 5-8 der ISBN-13
push @{$isbns_by_publisher{substr $clean_isbn, 4, 4}}, $isbn;
}
}
for my $key (sort keys %isbns_by_publisher) {
print "Verlagsschluessel $key:\n";
print "$_\n" for @{$isbns_by_publisher{$key}};
print "\n";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Verlagsschluessel 5659:
978-1-56592-243-3
Verlagsschluessel 5960:
978-0-596-00173-5
Verlagsschluessel 8272:
978-3-8272-6153-3
Verlagsschluessel 8273:
978-3-8273-1812-1
Verlagsschluessel 8972:
978-3-89721-109-4
978-3-89721-142-1
6 Einträge, 1 Seite |