Šachl was picked 128th overall in the 1996 NHL Entry Draft by New York Islanders from HC České Budějovice. He then spent a year in the Western Hockey League for the Tri-City Americans before returning to České Budějovice. He moved to North America in 1999-00 and played one game in the West Coast Hockey League for the Tacoma Sabercats and then played three games in the United Hockey League for the Asheville Smoke before playing 55 games of the Fort Wayne Komets in the same league. In 2000, he was traded to Nashville Predators, and spent two seasons playing for the Milwaukee Admirals of the American Hockey League. He then moved to Finland in the Sm-liiga for Ässät and then for SaiPa and then briefly played in Sweden's Elitserien for Brynäs IF before returning to the Czech Extraliga with HC Liberec in 2005. On 9 October 2009, it was announced he had signed for HC Košice of the Slovak Extraliga.