#!/usr/bin/perl require("/home/james/scifi/arabise"); $/ = ""; $lasthead = ""; while (<>) { $rec = $_; $rec =~ s/\n/ \n/g; $rec =~ s/[ ]+/ /g; $rec =~ s/> \n/>\n/g; $rec =~ s/\n//g; $rec =~ s/(I>)([^<])/$1 $2/g; $rec =~ s/(SUP>)([^<])/$1 $2/g; $rec =~ s/()/\n$1\n/g; $rec =~ s/ ()/$1/g; $lasthead = $head; $rec =~ /(.*)<\/HEAD>/; $head = $1; $rec =~ /(.*)<\/POS>/; $pos = $1; $rec =~ /(.*)<\/YEAR>/; $year = $1; $rec =~ /(.*)<\/AUTH>/; $auth = $1; $rec =~ /(.*)<\/STORY>/; $story = $1; $rec =~ /(.*)<\/MAG>/; $mag = $1; $rec =~ /(.*)<\/ANTH>/; $anth = $1; $rec =~ /(.*)<\/ED>/; $ed = $1; $rec =~ /(.*)<\/DATE>/; $date = $1; $rec =~ /(.*)<\/PLACE>/; $place = $1; $rec =~ /(.*)<\/SECT>/; $sect = $1; $rec =~ /(.*)<\/CHAP>/; $chap = $1; $rec =~ /(.*)<\/PAGE>/; $page = $1; $rec =~ /(.*)<\/COL>/; $col = $1; $rec =~ /(.*)<\/CIT>/; $cit = $1; $cit_sortkey = &create_cit_sortkey; print "$cit_sortkey\n"; } sub create_cit_sortkey { if ($sect =~ /./ && $sect =~ /[a-zA-Z]/) { $sectnum = &arabise($sect); } if ($chap =~ /./) { $chapnum = &arabise($chap); } $auth =~ tr/[A-Z]/[a-z]/; $story =~ tr/[A-Z]/[a-z]/; $mag =~ tr/[A-Z]/[a-z]/; $anth =~ tr/[A-Z]/[a-z]/; $ed =~ tr/[A-Z]/[a-z]/; $place =~ tr/[A-Z]/[a-z]/; $date =~ tr/[A-Z]/[a-z]/; $auth =~ s/\.//g; $auth =~ s/\,//g; $auth =~ s/[ ]+//g; $story =~ s/[\.\,\;\:\`\'\-\!\"\? ]+//g; $mag =~ s/[\.\,\;\:\`\'\-\!\"\? ]+//g; $date =~ s/[\.\,\;\:\`\'\-\!\"\? ]+//g; $anth =~ s/[\.\,\;\:\`\'\-\!\"\? ]+//g; $date =~ s/[\(\)]//g; $place =~ s/[\(\)]//g; $page_len = length($page); if ($page_len < 4 && $page_len > 0) { if ($page_len == 3) { $page = "0" . $page; } if ($page_len == 2) { $page = "00" . $page; } if ($page_len == 1) { $page = "000" . $page; } } $sortkey = $auth . $story . $mag . $anth . $ed . $date . $place . $sectnum . $chapnum . $page . $col; }