Thousands of Peruvians have marched in at least 11 cities to protest against a new law that strips workers between ages 18 and 24 of some labour rights, and some of the demonstrations turned violent.

On Thursday night in the capital city of Lima, some of the more than 5,000 marchers clashed with tear gas-hurling police, pelting them with sticks and stones and setting fire to trash in street bins.

Sixteen police officers were injured, one seriously, and 20 people were arrested in the capital, Interior Minister Daniel Urresti told reporters.

There was no immediate reports on civilian injuries.

The march was the fourth against the law since Congress passed it in early December with minimal debate. Critics say it favours employers, converting one in 15 Peruvians into cheap labour.

Under the law, workers ages 18 to 24 who are dismissed will not get severance pay. Workers in the age group also will now be entitled to only half the vacation time given to older employees.

The law also states that young workers would not be paid the twice yearly bonuses of one month's wages standard for others, the Associated Press news agency reported.