fastix®: hash (oder einfach mal kein dummes zeug reden)

Beitrag lesen

ich habs, was das Auslesen der Darei betrifft ein wenig variiert....

#!/usr/bin/perl -w
use strict;
my $such_zahl='([+-]?(?:\d+[.,]\d+|[.,]\d+|\d+)(?:[eE][+-]?\d+)?)'; # !!später ausbessern!!
my $n=-1;
my (%bom, $part, $part_id, $mat_typ, $dichte, $etyp, $contact_thickness, $thickness_scale);
my ($zeilenzahl, @zeilen, $zeile);

open (DAT, "< demo.txt");
$zeilenzahl=0;
while(defined($zeile=<DAT>)){
  $zeilen[$zeilenzahl]=$zeile;
  $zeilenzahl++;
}
close (DAT);

my $i;
for ($i=0; $i<$zeilenzahl; $i=$i+10) {

$part=$zeilen[$i+3];
  $zeilen[$i+4] =~/$such_zahl/, $part_id=$1;              print $part_id." | ";
  $zeilen[$i+5] =~/$such_zahl/, $mat_typ=$1;              print $mat_typ." | ";
  $zeilen[$i+6] =~/$such_zahl/, $dichte=$1*1e6;           print $dichte." | ";
  $zeilen[$i+7] =~/$such_zahl/, $etyp=$1;                 print $etyp ." | ";
  $zeilen[$i+8] =~/$such_zahl/, $contact_thickness=$1;    print $contact_thickness." | ";
  $zeilen[$i+9] =~/$such_zahl/, $thickness_scale=$1;      print $thickness_scale."\n";

$bom{$part_id} = {
               pname                           => $part,
               material_type                   => $mat_typ,
               dichte                          => $dichte,
               etyp                            => $etyp,
               contact_thickness               => $contact_thickness,
               thickness_scale                 => $thickness_scale
              };
 }

foreach my $key (keys %bom)    {
  print "Part ID:".$key."\n";
  foreach(keys %{$bom{$key}})    {
    print $_.":".$bom{$key}{$_}."\n";
  }
}