#!"D:\webserver\xampp\perl\bin\perl.exe" #! /usr/bin/perl use strict; use warnings; use JSON; # muss evtl. nachinstalliert werden use LWP::Simple; # muss evtl. nachinstalliert werden use Data::Dumper; # Wo sind die Daten Haltestellen ID zu holen? my $url = "http://localhost/abfahrten.do?id=01"; # Wie viele Abfahrten sollen gezeigt werden my $how_many = 3; my @titles = ( 'Zug', 'Zielort', 'Abf. in' ); # Ueberschriften der Ausgabe my @formats = ( '%4s', '%15s', '%8s' ); # Feldbreiten der Ausgabe my $format = join( ' ', @formats ) . "\n"; # baue Format fuer Ausgabe zusammen # Daten abholen lasssen #my $content = get( $url ); my $content = '[["S3","Dresden, Plauen","1"],["S1","Dresden, Flughafen","2"],["RE01","Meissen","10"],["ICE","Hamburg, Neugraben","15"]]'; # Abbruch, wenn Daten nicht geholt werden konnten die "Could not load data from $url." if not defined $content; # Bereite JSON-Parser vor my $json = JSON->new->allow_nonref; # Dekodiere JSON-Daten und erstelle eine Datenstruktur #my $array_from_json = [["ZG NR","Richtung","Rücklaufende Minuten"],["ZG NR","Richtung", "Rücklaufende Minuten"]]; my $array_from_json = $json->decode( $content ); # Kontrollausgabe #print Dumper $data; # Sortiere nach Abfahrtszeiten my @sorted = sort { $a->[2] <=> $b->[2] } @$array_from_json; #print Dumper \@sorted; # Zeige die nächsten Abfahrten gemäß $how_many print "Abfahrten\n"; printf $format, @titles; for my $aRef ( @sorted[ 0 .. $how_many-1 ] ) { my ( $zugnr, $ziel, $min ) = @$aRef; $ziel = ( split m/,\s+/, $ziel )[1] if $ziel =~ m/,/; printf $format, $zugnr, $ziel, $min; }