ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
89838
=L.A.= (21.05.2007 17:10, просмотров: 4119)
Еще вопрос по Perl. Прошу меня извинить, но скрипты на Перле вижу первый раз ( точнее увидел неделю назад ) Есть такой скрипт.
# perl mel2asm.pl < mel.txt > melody.asm


	foreach (<STDIN>) {
		chop;
		s/;.*$//;
		@lst = split(/ /);
		if(@lst < 2) { next; }
		$n = $lst[0] & 255; &putb;
		$n = $lst[0] >> 8; &putb;
		$p = 1;
		while($lst[$p] ne '') {
			$n = $lst[$p++];
			if($lst[$p] eq '') { $n .= "|en"; }
			&putb;
		}
	}

	print "\n;$cnt\n";

	exit;


sub putb
{
	$cnt++;
	if($c == 0) {
		print "\n\t.db $n";
	} else {
		print ", $n";
	}
	$c = ($c + 1) & 15;
}
Он должен преобразовать файлик вида
;For Elise (3/8, 60bpm)

;<time tick> <note> <note> ...
; 1
120 E5
150 Dis5

; 2
180 E5
210 Dis5
240 E5
270 H5
300 D5
330 C5

; 3
360 A5 A3
390 E3
420 A4
450 C4
480 E4
510 A5

; 4
540 H5 E2
570 E3
600 Gis3
630 E4
660 Gis4
690 H5
в таблицу типа

	.db 120, 0, E5|en, 150, 0, Dis5|en, 180, 0, E5|en, 210, 0, Dis5|en, 240, 0, E5|en, 14
	.db 1, H5|en, 44, 1, D5|en, 74, 1, C5|en, 104, 1, A5, A3|en, 134, 1, E3|en, 164
	.db 1, A4|en, 194, 1, C4|en, 224, 1, E4|en, 254, 1, A5|en, 28, 2, H5, E2|en, 58
	.db 2, E3|en, 88, 2, Gis3|en, 118, 2, E4|en, 148, 2, Gis4|en, 178, 2, H5|en, 208, 2
	.db C5, A3|en, 238, 2, E3|en, 12, 3, A4|en, 42, 3, E4|en, 72, 3, E5|en, 102, 3
	.db Dis5|en, 132, 3, E5|en, 162, 3, Dis5|en, 192, 3, E5|en, 222, 3, H5|en, 252, 3, D5|en
	.db 26, 4, C5|en, 56, 4, A5, A3|en, 86, 4, E3|en, 116, 4, A4|en, 146, 4, C4|en
	.db 176, 4, E4|en, 206, 4, A5|en, 236, 4, H5, E2|en, 10, 5, E3|en, 40, 5, Gis3|en
	.db 70, 5, E4|en, 100, 5, C5|en, 130, 5, H5|en, 160, 5, A5, A3|en, 190, 5, E3|en
	.db 220, 5, A4|en, 24, 6, E5|en, 54, 6, Dis5|en, 84, 6, E5|en, 114, 6, Dis5|en, 144
	.db 6, E5|en, 174, 6, H5|en, 204, 6, D5|en, 234, 6, C5|en, 8, 7, A5, A3|en, 38
	.db 7, E3|en, 68, 7, A4|en, 98, 7, C4|en, 128, 7, E4|en, 158, 7, A5|en, 188, 7
Но почему то этого не делает. Как запустить скрипт, чтобы он работал? Или что то поправить в нем?