
#################################################################################
##############################   Zadatak2   #####################################
###   Imamo neki svoj sajt, koji sadrzi nekoliko stranica sa  linkovima  ########
###   na stranice koje se nalaze u istom direktorijumu. Zadatak je ispisati   ###
###   imena tih stranica koje su medjusobno povezane                          ###
#################################################################################


# Proveravamo da li je zadato ime datoteke od koje se pocinje rekurzivna pretraga
if ($#ARGV<0) {
	die "Obavezno zadavanje imena pocetne stranice.\n"
}

# Mapa obradjenih datoteka
%obradjene = ();

# rekurzivno obradjujemo datoteku
obradi_datoteku($ARGV[0]);



# Definicija funkcije koja DFS algoritmom rekurzivno obradjuje datoteke
sub obradi_datoteku {

	# Uzimamo ime datoteke koje je prosledjeno funkciji,
	# koje mora da bude lokalna promenljiva
	my $ime_dat = shift;

	# Datoteku oznacavamo kao obradjenu
	$obradjene{$ime_dat} = 1;

	# Stampamo ime stranice
	print "Datoteka: $ime_dat\n";

	# Otvaramo datoteku za citanje
	open (DATOTEKA, $ime_dat) or die "Neuspesno otvaranje datoteke: $ime_dat.\n";

	# Citamo stanicu i trazimo linkove na neku drugu
	@sve_linije = <DATOTEKA>;
	my $sastavljeno = join("", @sve_linije);
	while ($sastavljeno =~ /<a\s+href\s*=\s*\"(\w+\.html?)\">/ig) {
		obradi_datoteku($1) unless ($obradjene{$1}==1);
	}

	# Zatvaramo datoteku
	close (DATOTEKA);		
}
