train: 967985,0,4
Sat Dec 6 04:39:08 2025 2025-12-06T04:39:08Z plat dest scheduled estimated __218983 Stations on the Cranbourne and Pakenham lines will be affected by temporary car park closures and changes to pedestrian access at select times. These impacts are due to works as part of the Level Crossing Removal Project, Car Parks for Commuters program and other maintenance works. _*344824 From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works. ** current, _* Later today, __ in the future Final stop Westall
2 1234 2025-12-06T03:54:00Z 14:54:00 -45m-8s -2708 14:54:00 -45m-8s -2708 disruptions 344824 218983
2 1235 2025-12-06T03:57:00Z 14:57:00 -42m-8s -2528 14:56:40 -42m-28s -2548 disruptions 344824 218983
2 1236 2025-12-06T04:00:00Z 15:00:00 -39m-8s -2348 15:00:00 -39m-8s -2348 disruptions 344824 218983
4 1118 Malvern Station 2025-12-06T04:08:00Z 15:08:00 -31m-8s -1868 15:07:40 -31m-28s -1888 disruptions 344824 218983
4 1036 Caulfield Station 2025-12-06T04:11:00Z 15:11:00 -28m-8s -1688 15:11:00 -28m-8s -1688 disruptions 344824 218983
2 1034 Carnegie Station 2025-12-06T04:13:00Z 15:13:00 -26m-8s -1568 15:13:00 -26m-8s -1568 disruptions 344824 218983
2 1138 Murrumbeena Station 2025-12-06T04:15:00Z 15:15:00 -24m-8s -1448 15:15:00 -24m-8s -1448 disruptions 344824 218983
2 1098 Hughesdale Station 2025-12-06T04:16:00Z 15:16:00 -23m-8s -1388 15:17:00 -22m-8s -1328 disruptions 344824 218983
2 1150 Oakleigh Station 2025-12-06T04:19:00Z 15:19:00 -20m-8s -1208 15:19:00 -20m-8s -1208 disruptions 344824 218983
2 1099 Huntingdale Station 2025-12-06T04:21:00Z 15:21:00 -18m-8s -1088 15:21:00 -18m-8s -1088 disruptions 344824 218983
2 1040 Clayton Station 2025-12-06T04:24:00Z 15:24:00 -15m-8s -908 15:25:00 -14m-8s -848 disruptions 344824 218983
2 1208 Westall Station 2025-12-06T04:27:00Z 15:27:00 -12m-8s -728 no est disruptions 344824 218983
$perl_scalar = { 'departures' => [ { 'at_platform' => 'false', 'departure_note' => 'via Metro Tunnel', 'departure_sequence' => 1, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T03:54:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T03:54:00Z', 'skipped_stops' => [], 'stop_id' => 1234 }, { 'at_platform' => 'false', 'departure_note' => 'via Metro Tunnel', 'departure_sequence' => 2, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T03:56:40Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T03:57:00Z', 'skipped_stops' => [], 'stop_id' => 1235 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 3, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:00:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:00:00Z', 'skipped_stops' => [], 'stop_id' => 1236 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 4, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:07:40Z', 'flags' => '', 'platform_number' => '4', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:08:00Z', 'skipped_stops' => [], 'stop_id' => 1118 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 5, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:11:00Z', 'flags' => '', 'platform_number' => '4', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:11:00Z', 'skipped_stops' => [], 'stop_id' => 1036 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 6, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:13:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:13:00Z', 'skipped_stops' => [], 'stop_id' => 1034 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 7, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:15:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:15:00Z', 'skipped_stops' => [], 'stop_id' => 1138 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 8, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:17:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:16:00Z', 'skipped_stops' => [], 'stop_id' => 1098 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 9, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:19:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:19:00Z', 'skipped_stops' => [], 'stop_id' => 1150 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 10, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:21:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:21:00Z', 'skipped_stops' => [], 'stop_id' => 1099 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 11, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => '2025-12-06T04:25:00Z', 'flags' => '', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:24:00Z', 'skipped_stops' => [], 'stop_id' => 1040 }, { 'at_platform' => 'false', 'departure_note' => '', 'departure_sequence' => 12, 'direction_id' => 10, 'disruption_ids' => [ 344824, 218983 ], 'estimated_departure_utc' => undef, 'flags' => 'E', 'platform_number' => '2', 'route_id' => 11, 'run_id' => 967985, 'run_ref' => '967985', 'scheduled_departure_utc' => '2025-12-06T04:27:00Z', 'skipped_stops' => [], 'stop_id' => 1208 } ], 'directions' => { '10' => { 'direction_id' => 10, 'direction_name' => 'Pakenham', 'route_id' => 11, 'route_type' => 0 } }, 'disruptions' => [ { 'colour' => '#ffbb00', 'description' => 'Southern Cross Station: From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.', 'display_on_board' => 'true', 'display_status' => 'false', 'disruption_id' => 344824, 'disruption_status' => 'Current', 'disruption_type' => 'Station detour', 'from_date' => '2025-09-25T05:13:00Z', 'last_updated' => '2025-09-29T04:38:47Z', 'published_on' => '2025-09-25T05:26:57Z', 'routes' => [], 'stops' => [], 'title' => 'Southern Cross Station: From 8.30pm Monday 29 September 2025 until August 2026, there will be changes to the way you access and exit the station, due to escalator upgrade works.', 'to_date' => '2026-08-31T17:00:00Z', 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/page/news-and-resources/news/southern-cross-station-escalator-upgrade/' }, { 'colour' => '#ffd500', 'description' => 'Stations on the Cranbourne and Pakenham lines will be affected by temporary car park closures and changes to pedestrian access at select times. These impacts are due to works as part of the Level Crossing Removal Project, Car Parks for Commuters program and other maintenance works.', 'display_on_board' => 'false', 'display_status' => 'false', 'disruption_id' => 218983, 'disruption_status' => 'Current', 'disruption_type' => 'Planned Closure', 'from_date' => '2020-12-14T21:57:00Z', 'last_updated' => '2025-11-25T23:49:37Z', 'published_on' => '2020-12-14T22:10:18Z', 'routes' => [], 'stops' => [], 'title' => 'Cranbourne and Pakenham line stations: Temporary car park closures and changes to pedestrian access until late 2025', 'to_date' => undef, 'url' => 'http://ptv.vic.gov.au/live-travel-updates/article/cranbourne-and-pakenham-line-stations-temporary-car-park-closures-and-changes-to-pedestrian-access-until-2022' } ], 'routes' => { '11' => { 'geopath' => [], 'route_gtfs_id' => '2-PKM', 'route_id' => 11, 'route_name' => 'Pakenham', 'route_number' => '', 'route_type' => 0 } }, 'runs' => { '967985' => { 'destination_name' => 'Westall', 'direction_id' => 10, 'express_stop_count' => 3, 'externalService' => 7, 'final_stop_id' => 1208, 'geopath' => [], 'interchange' => { 'distributor' => { 'advertised' => 'false', 'destination_name' => 'Town Hall', 'direction_id' => 1, 'route_id' => 11, 'run_ref' => '967986', 'stop_id' => 1235 }, 'feeder' => { 'advertised' => 'true', 'destination_name' => 'Town Hall', 'direction_id' => 1, 'route_id' => 14, 'run_ref' => '990008', 'stop_id' => 1235 } }, 'route_id' => 11, 'route_type' => 0, 'run_id' => 967985, 'run_note' => '', 'run_ref' => '967985', 'run_sequence' => 0, 'status' => 'scheduled', 'vehicle_descriptor' => { 'air_conditioned' => undef, 'description' => '3 Car Silver Hitachi', 'id' => '9005M-9905M', 'length' => '160', 'low_floor' => undef, 'operator' => 'Metro Trains Melbourne', 'supplier' => 'CIS - Metro Trains Melbourne' }, 'vehicle_position' => { 'bearing' => '-47.4548462408347', 'datetime_utc' => '2025-12-06T15:26:22', 'direction' => 'Inbound', 'easting' => '336360.319753418', 'expiry_time' => '2025-12-06T15:39:51', 'latitude' => '-37.9377045398788', 'longitude' => '145.137820641758', 'northing' => '5799461.5162856', 'supplier' => 'CIS - Metro Trains Melbourne' } } }, 'status' => { 'health' => 1, 'version' => '3.0' }, 'stops' => { '1034' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1034, 'stop_landmark' => '', 'stop_latitude' => '-37.88624', 'stop_longitude' => '145.058578', 'stop_name' => 'Carnegie', 'stop_sequence' => 0, 'stop_suburb' => 'Carnegie', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1036' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1036, 'stop_landmark' => '', 'stop_latitude' => '-37.8774567', 'stop_longitude' => '145.042526', 'stop_name' => 'Caulfield', 'stop_sequence' => 0, 'stop_suburb' => 'Caulfield East', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1040' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1040, 'stop_landmark' => '', 'stop_latitude' => '-37.9246826', 'stop_longitude' => '145.120529', 'stop_name' => 'Clayton', 'stop_sequence' => 0, 'stop_suburb' => 'Clayton', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1098' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1098, 'stop_landmark' => '', 'stop_latitude' => '-37.89488', 'stop_longitude' => '145.077637', 'stop_name' => 'Hughesdale', 'stop_sequence' => 0, 'stop_suburb' => 'Hughesdale', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1099' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1099, 'stop_landmark' => '', 'stop_latitude' => '-37.91102', 'stop_longitude' => '145.102371', 'stop_name' => 'Huntingdale', 'stop_sequence' => 0, 'stop_suburb' => 'Oakleigh', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1118' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1118, 'stop_landmark' => '', 'stop_latitude' => '-37.86625', 'stop_longitude' => '145.0293', 'stop_name' => 'Malvern', 'stop_sequence' => 0, 'stop_suburb' => 'Malvern', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1138' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1138, 'stop_landmark' => '', 'stop_latitude' => '-37.8901978', 'stop_longitude' => '145.067383', 'stop_name' => 'Murrumbeena', 'stop_sequence' => 0, 'stop_suburb' => 'Murrumbeena', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1150' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1150, 'stop_landmark' => '', 'stop_latitude' => '-37.9003677', 'stop_longitude' => '145.088318', 'stop_name' => 'Oakleigh', 'stop_sequence' => 0, 'stop_suburb' => 'Oakleigh', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1, 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1,Zone 2' } }, '1208' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1208, 'stop_landmark' => '', 'stop_latitude' => '-37.93849', 'stop_longitude' => '145.13884', 'stop_name' => 'Westall', 'stop_sequence' => 0, 'stop_suburb' => 'Clayton South', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'false', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 2 ], 'vline_reservation' => 'false', 'zone' => 'Zone 2' } }, '1234' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1234, 'stop_landmark' => '', 'stop_latitude' => '-37.80805', 'stop_longitude' => '144.96312', 'stop_name' => 'State Library', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1235' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1235, 'stop_landmark' => '', 'stop_latitude' => '-37.8160934', 'stop_longitude' => '144.966827', 'stop_name' => 'Town Hall', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } }, '1236' => { 'route_type' => 0, 'stop_distance' => '0', 'stop_id' => 1236, 'stop_landmark' => '', 'stop_latitude' => '-37.8333244', 'stop_longitude' => '144.9728', 'stop_name' => 'Anzac', 'stop_sequence' => 0, 'stop_suburb' => 'Melbourne City', 'stop_ticket' => { 'is_free_fare_zone' => 'false', 'ticket_checks' => 'true', 'ticket_machine' => 'true', 'ticket_type' => '', 'ticket_zones' => [ 1 ], 'vline_reservation' => 'false', 'zone' => 'Zone 1' } } } }