Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- use YAML;
- use File::Basename 'basename', 'dirname';
- sub usage {
- my $script = basename $0;
- print "Traverse YAML structure\n";
- print "Usage: $script yaml-file\n";
- }
- my $fname = $ARGV[0];
- unless ($fname) {
- usage;
- exit 1;
- }
- traverse(YAML::LoadFile($fname), "", *STDOUT);
- sub traverse {
- my ($node, $path, $writer) = @_;
- if ('ARRAY' eq ref $node) {
- my $i = 0;
- for (@{$node}) {
- traverse($_, "$path\[$i\]", $writer);
- $i++;
- }
- return
- }
- if ('HASH' eq ref $node) {
- for (keys %{$node}) {
- traverse($node->{$_}, "$path.$_", $writer);
- }
- return
- }
- print $writer "$path\t$node\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement