#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $file_in="test.txt"; # matrix mit den Werten. my @matrix; # Datei öffnen open(my $fhi, '<', $file_in) or die("Error open $file_in ($!)\n"); # lese Datei zeilenweise while(my $line=<$fhi>) { # auf korrektes Format testen # und gleich das Datum holen next unless $line =~ /<([^>]+)>([^\r\n]+)/; my ($date,$data)=($1,$2); # Daten zerschneiden # beginnt mit 2004 oder 04 und endet vor 1003 while($data=~s/(?:2004|04)(..)(..)(..)(.+?)(?=1003)//) { #matrix füllen: my ($wert_a,$pos_b,$pos_c,$wert_d)=($1,hex($2),hex($3),$4); $matrix[$pos_b][$pos_c]=$wert_d; } } # Datei schließen close($fhi); # Testausgabe mit Data::Dumper: print Dumper(\@matrix);