#!/usr/bin/env perl

use warnings;
use strict;

$/ = '';

my @pre;
my @tosort;
my @post;

while (<>) {
	if (m/name => '[^']*'/) {
		push @tosort, $_;
	} elsif (m/^]/) {
		push @post, $_;
	} else {
		push @pre, $_
	}
}

sub getname($) {
	my $str = $_[0];
	if ($str =~ m/name => '([^']*)'/) {
		return $1;
	}
	print "qwe";
	return $str;
}

my @sorted = sort { lc(getname($a)) cmp lc(getname($b)) } @tosort;

for my $i (@pre) {
	print $i;
}

for my $i (@sorted) {
	print $i;
}

for my $i (@post) {
	print $i;
}
